隨筆 - 26  文章 - 2  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          一、 javabean 是什么?

          Bean的中文含義是“豆子”,顧名思義,JavaBean是指一段特殊的Java類,

          就是有默然構造方法,只有get,set的方法的java類的對象.

           

          專業點解釋是:

          JavaBean定義了一組規則
          JavaBean就是遵循此規則的平常的Java對象 

           

          滿足這三個條件:  
             1.執行java.io.Serializable 接口 
           2.提供無參數的構造器 
            3.提供getter 和 setter方法訪問它的屬性.

           

          簡單地說,JavaBean是用Java語言描述的軟件組件模型,其實際上是一個類。這些類遵循一個接口格式,以便于使函數命名、底層行為以及繼承或實現的行為,可以把類看作標準的JavaBean組件進行構造和應用。

          JavaBean一般分為可視化組件和非可視化組件兩種。可視化組件可以是簡單的GUI元素,如按鈕或文本框,也可以是復雜的,如報表組件;非可視化組件沒有GUI表現形式,用于封裝業務邏輯、數據庫操作等。其最大的優點在于可以實現代碼的可重用性。JavaBean又同時具有以下特性。

          *     易于維護、使用、編寫。

          *     可實現代碼的重用性。

          *     可移植性強,但僅限于Java工作平臺。

          *     便于傳輸,不限于本地還是網絡。

          *     可以以其他部件的模式進行工作。

          對于有過其他語言編程經驗的讀者,可以將其看作類似微軟的ActiveX的編程組件。但是區別在于JavaBean是跨平臺的,而ActiveX組件則僅局限于Windows系統。總之,JavaBean比較適合于那些需要跨平臺的、并具有可視化操作和定制特性的軟件組件。

           

          JavaBean組件與EJB(Enterprise JavaBean,企業級JavaBean)組件完全不同。EJB 是J2EE的核心,是一個用來創建分布式應用、服務器端以及基于Java應用的功能強大的組件模型。JavaBean組件主要用于存儲狀態信息,而EJB組件可以存儲業務邏輯。

          2  使用JavaBean的原因

          程序中往往有重復使用的段落,JavaBean就是為了能夠重復使用而設計的程序段落,而且這些段落并不只服務于某一個程序,而且每個JavaBean都具有特定功能,當需要這個功能的時候就可以調用相應的JavaBean。從這個意義上來講,JavaBean大大簡化了程序的設計過程,也方便了其他程序的重復使用。

          JavaBean傳統應用于可視化領域,如AWT(窗口工具集)下的應用。而現在,JavaBean更多地應用于非可視化領域,同時,JavaBean在服務器端的應用也表現出強大的優勢。非可視化的JavaBean可以很好地實現業務邏輯、控制邏輯和顯示頁面的分離,現在多用于后臺處理,使得系統具有更好的健壯性和靈活性。JSP + JavaBean和JSP + JavaBean + Servlet成為當前開發Web應用的主流模式。

          3  JavaBean的開發

          在程序設計的過程中,JavaBean不是獨立的。為了能夠更好地封裝事務邏輯、數據庫操作而便于實現業務邏輯和前臺程序的分離,操作的過程往往是先開發需要的JavaBean,再在適當的時候進行調用。但一個完整有效的JavaBean必然會包含一個屬性,伴隨若干個get/set(只讀/只寫)函數的變量來設計和運行的。JavaBean作為一個特殊的類,具有自己獨有的特性。應該注意以下3個方面。

          *     JavaBean類必須有一個沒有參數的構造函數。

          *     JavaBean類所有的屬性最好定義為私有的。

          *     JavaBean類中定義函數setXxx() 和getXxx()來對屬性進行操作。其中Xxx是首字母大寫的私有變量名稱。

          posted @ 2011-10-08 16:25 Java_liyadong 閱讀(193) | 評論 (0)編輯 收藏

          關鍵字

          含義

          Abstract

          一個Java語言中的關鍵字,用在類的聲明中來指明一個類是不能被實例化的,但是可以被其它類繼承。一個抽象類可以使用抽象方法,抽象方法不需要實現,但是需要在子類中被實現

          Boolean

          布爾類型,只有true或者false

          Break

          停止,并跳出本層循環

          Byte

          8bit (位),也就是8個1/0表示,即二進制

          Byvalue

           

          Case

          Java語言的關鍵字,用來定義一組分支選擇,如果某個值和switch中給出的值一樣,就會從該分支開始執行。

          Catch

          Java的一個關鍵字,用來聲明當try語句塊中發生運行時錯誤或非運行時異常時運行的一個塊。

          Char

          Java語言的一個關鍵字,用來定義一個字符類型

          Class

          Const

          在Java中,const是作為保留字以備擴充,同樣的保留字以備擴充還有goto.

          你可以用final關鍵字.final也可以用于聲明方法或類,被聲明為final的方法或類不能被繼承

          一般C里是const java用final

          Continue

          一個Java的關鍵字,用來打斷當前循環過程,從當前循環的最后重新開始執行,如果后面跟有一個標簽,則從標簽對應的地方開始執行。

          Default

          一個Java的關鍵字,配合switch跟case使用,但case中沒有找到匹配時,則輸出或者為default后面的語句。

          Do

          一個Java語言的關鍵字,用來聲明一個循環,這個循環的結束條件可以通過while關鍵字設置

          Double

          一個Java語言的關鍵字,用來定義一個double類型的變量

          Else

          一個Java語言的關鍵字,如果if語句的條件不滿足就會執行該語句。

          Extends

          extends 繼承 類X 通過extend 類Y來添加功能,或者添加變量,或者添加方法,或者覆蓋類Y的方法。一個接口extends另外一個接口來添加方法。

          False

          假的

          Final

          一個Java語言的關鍵字。你只能定義一個實體一次,以后不能改變它或繼承它。更嚴格的講:一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變量不能改變其初始值。

          Finally

          一個Java語言的關鍵字,用來執行一段代碼不管在前面定義的try語句中是否有異常或運行時錯誤發生。

          Float

          一個Java語言的關鍵字,用來定義一個浮點數變量

          For

          一個Java語言的關鍵字,用來聲明一個循環。程序員可以指定要循環的語句,推出條件和初始化變量。

          Goto

          雖然為Java關鍵字,但是僅在C語言里面使用,Java不提供Goto語句

          If

          Java編程語言的一個關鍵字,用來生成一個條件測試,如果條件為真,就執行if下的語句。

          Implements

          Java(TM)編程語言的一個關鍵字,在類的聲明中是可選的,用來指明當前類實現的接口。

          Import

          Java(TM)編程語言的一個關鍵字,在源文件的開始部分指明后面將要引用的一個類或整個包,這樣就不必在使用的時候加上包的名字。

          Instaceof

          一個二操作數的Java(TM)語言關鍵字,用來測試第一個參數的運行時類型是否和第二個參數兼容。

          Int

          Java(TM)的一個關鍵字,用來定義一個整形變量

          Interface

          Java(TM)的一個關鍵字,用來定義一系列的方法和常量。它可以被類實現,通過implements關鍵字。

          Long

          Java語言的一個關鍵字,用來定義一個long類型的變量

          Native

          本地方法。

          New

          Java語言的一個關鍵字,用來創建一個新的方法

          Null

          Java語言的一個關鍵字,當String類型沒賦值時,該變量的值為Null

          Package

          Java語言的一個關鍵字,包的意思

          Private

          Java語言的一個關鍵字,用在方法或變量的聲中。它表示這個方法或變量只能被這個類的其它元素所訪問。

          Protected

          Java語言的一個關鍵字,在方法和變量的聲明中使用,它表示這個方法或變量只能被同一個類中的,子類中的或者同一個包中的類中的元素所訪問。

          Public

          Java語言的一個關鍵字,在方法和變量的聲明中使用,它表示這個方法或變量能夠被其它類中的元素訪問。

          Return

          Java語言的一個關鍵字,用來結束一個方法的執行。它后面可以跟一個方法聲明中要求的值。

          Short

          Java語言的關鍵字,用來定義一個short類型的變量。

          Static

          Java語言的關鍵字,用來定義一個變量為類變量。類只維護一個類變量的拷貝,不管該類當前有多少個實例。"static" 同樣能夠用來定義一個方法為類方法。類方法通過類名調用而不是特定的實例,并且只能操作類變量。

          Super

          父類

          Switch

          Java語言的關鍵字,是一個選擇語句,與case,default,break一起使用。

          Synchronized

          線程同步

          This

          Java語言的關鍵字,用來代表它出現的類的一個實例。this可以用來訪問類變量和類方法。

          Threadsafe

           

          Throw

          Java語言的關鍵字,允許用戶拋出一個exception對象或者任何實現throwable的對象

          Throws

          Java語言的關鍵字,用在方法的聲明中來說明哪些異常這個方法是不處理的,而是提交到程序的更高一層。

          Transient

          Java語言的關鍵字,用來表示一個域不是該對象串行化的一部分。當一個對象被串行化的時候,transient型變量的值不包括在串行化的表示中,然而非transient型的變量是被包括進去的。

          True

          真的

          Try

          Java語言的關鍵字,用來定義一個可能拋出異常語句塊。如果一個異常被拋出,一個可選的catch語句塊會處理try語句塊中拋出的異常。同時,一個finally語句塊會被執行,無論一個異常是否被拋出。

          Void

          Java語言的關鍵字,用在Java語言的方法聲明中說明這個方法沒有任何返回值。"void"也可以用來表示一句沒有任何功能的語句。

          volatile

          Java語言的關鍵字,用在變量的聲明中表示這個變量是被同時運行的幾個線程異步修改的。

          while

          Java語言的一個關鍵字,用來定義一段反復執行的循環語句。循環的退出條件是while語句的一部分。

          posted @ 2011-10-06 21:53 Java_liyadong 閱讀(217) | 評論 (0)編輯 收藏
          Math.random()






          返回 0 ~ 1 之間的隨機數。

          Math.round()
          四舍五入取整。
          Math.ceil()
          返回值:返回大于或等于x,并且與之最接近的整數。
          注:如果x是正數,則把小數“入”;如果x是負數,則把小數“舍”。
          Math.floor()
          返回值:返回小于或等于x,并且與之最接近的整數。
          注:如果x是正數,則把小數“舍”;如果x是負數,則把小數“入”。
          posted @ 2011-09-30 10:37 Java_liyadong 閱讀(3084) | 評論 (0)編輯 收藏

          管理權限和角色
          權限和角色的區別主要在哪里
          說白了,用戶要操作數據庫的時候,需要有對應的系統權限
          要操作方案的時候,需要有對應的對象權限,為了簡化管理,出現了角色


          圖解:


          系統權限:是指執行特定類型sql命令的權利。他用于控制用戶可以執行的一個或是一組
          數據庫操作。比如,當用戶具有了create
          table權限的時候,它就可以在其的方案中建表了。
          如果有create any table
          權限的時候,可以在其他方案中建表了。在oracle中大概有100多權限
          常用的有:
          create
          session 連接數據庫

          create view
          建視圖

          create procedure
          建過程、函數、包

          create cluster
          建族

          create table
          create public synonym 建同義詞
          create trigger 建立觸發器


          顯示系統權限
          查詢數據字典視圖system_privilege_map
          select * from
          system_privilege_map order by name;


          授予系統權限
          dba身份授予,如果帶有with admin
          option選項,則被授予權限的用戶還可以給其他用戶授予權限
          例子:
          1、創建兩個用戶zqh1、zqh2
          conn
          system/manager;
          create user zqh1 indendified by 123;
          create user zqh2
          indendified by 321;
          這時兩個用戶登錄是登錄不了的
          2、給zqh1授權權限
          grant
          create session,create table to zqh1 with admin option;
          --------這意味zqh1可以給其他用戶繼續授權
          grant create view to
          zqh1;
          這時zqh1可以登錄了
          3、zqh1給zqh2授權
          conn
          zqh1/123;
          grant create session,create table to zqh2 with admin
          option;
          grant create view to zqh2;------------no ok!!!!


          回收系統權限
          使用revoke命令,注意系統權限的級聯回收問題---【不是級聯回收】
          根據上面zqh1、zqh2
          system----------->zqh1---------------->zqh2
          現在用system執行如下操作:
          revoke
          create session from zqh1;
          -------思考:zqh2還能登陸嗎?yes!!!
          ========================================================================


          對象權限:指訪問其它方案對象的權限。比如zqh1用戶要訪問scott.emp表,必須在emp表上
          具有對象權限
          常用的有:
          alter 
          delete  select  insert   update  index索引   reference 引用  execute執行


          顯示對象權限
          可以顯示用戶或是角色所具有的對象權限,視圖dba_tab_privs
          conn
          system/manager;
          select distinct privilege from dba_tab_privs;
          select
          grantor ,owner,table_name,privilege from dba_tab_privs where grantee='BLAKE'


          授予對象權限
          對象權限可以授予用戶、角色和public。授予用戶的時候可以用with
          grant option
          但是授予
          角色的時候不可以用。
          1、monkey用戶操作scott.emp表,則必須授與相應的對象權限
          conn
          system/manager as sysdba;
          create user monkey identified by 123;
          grant
          create session to monkey;
          conn monkey/123;
          select * from scott.emp;
          -------報錯,表或者視圖不存在
          -------------------------------------------------------------
          (1)monkey用戶查詢scott.emp表數據,如何執行?
          conn
          scott/tiger;
          grant select on emp to monkey;
          select * from
          scott.emp;
          (2)monkey用戶修改scott.emp表數據,如何執行?
          grant update emp to
          monkey;
          (3)monkey用戶刪除scott.emp表數據,如何執行?
          grant delete emp to
          monkey;
          (4)有沒有更加簡單的方法,一次把所有權限賦給monkey?
          grant all on emp to monkey;


          2、能否對monkey訪問權限更加精細控制
          (1)monkey只可以修改scott.emp的表的sal字段,怎么操作?
          grant
          update on emp(sal) to
          monkey;
          (2)monkey只可以查詢scott.emp的表的ename,sal數據,怎么操作?
          grant select on
          emp(ename,sal) to monkey;


          3、授予alter權限
          monkey要修改scott.emp表的結果
          則必須授予alter對象權限
          conn
          scott/tiger;
          grant alter on emp to monkey;


          4、授予execute權限
          monkey想要執行其他方案的包/過程/函數,則須有execute權限
          conn
          system/manager;
          grant execute on dbms_transaction(包) to monkey;


          5、授予index權限
          想在別的方案的表上建立索引
          conn scott/tiger;
          grant
          index on scott.emp to monkey;


          6、使用with grant option選項
          conn scott/tiger;
          grant select
          on emp to monkey with grant option;


          回收對象權限
          對象的權限的回收是否會級聯收回呢?【yes!!!!】
          scott--------------->zqh1------------->zqh2
          conn
          scott/tiger@orcl
          revoke select on emp
          from zqh1; -------zqh2能否查詢scott.emp表【no!!!】


          總結:關于級聯回收,系統權限沒有級聯回收,對象權限有級聯回收!!!!!


          角色:相關權限命令的集合,使用角色就是為了簡化管理。
          分類:預定義和自定義角色兩類


          預定義角色是oracle提供的角色,每種角色
          都用于執行一些特定的管理任務。connect/resource/dba
          (1)connect角色具有的系統權限
          alter session
          create
          cluster
          create database link
          create session
          create table
          create view

          create sequence


          創建角色
          create role zqhrole not
          identified;


          角色授權
          conn system/manager;
          grant
          create session to zqhrole with admin option;----連接數據庫的授權
          conn scott/tiger@orcl;
          grant
          insert,update,delete on emp to zqhrole;-----提倡表是誰的,由誰給角色授權
          把角色分配給用戶
          conn system/manager;
          create user
          zqh3 identified by 123;
          grant zqhrole to zqh3 with admin option;
          zqh3登錄
          conn zqh3/123;
          select * from
          scott.emp;-------ok!!!!!


          刪除角色
          drop role 角色名
          問題:
          假如zqhrole角色刪除了,那么zqh3還能登錄嗎????
          conn system/manager;
          drop role zqhrole;
          conn zqh3/123;【登不上去了!!!!!!】


          顯示角色信息:
          (1)顯示所有的角色
          select * from
          dba_roles;---------25個角色
          (2)顯示角色具有的系統權限
          select privilege,admin_option from
          roles_sys_privs where
          role='角色名';
          (3)顯示角色具有的對象權限
          查詢dba_tab_privs
          (4)顯示用戶具有的角色,及默認角色
          查詢dba_role_privs
          select
          grant_role,default_role from dba_role_privs where grantee='用戶名';


          posted @ 2011-09-28 13:20 Java_liyadong 閱讀(884) | 評論 (0)編輯 收藏

          package com.jdbc.odbc;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.SQLException;
          import java.sql.Statement;

          public class Jdbc_Demo {
           public static void main(String[] args) {
            
            try {
             
                 Class.forName("oracle.jdbc.driver.OracleDriver");
                 Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
                 Statement st = ct.createStatement();
                 ResultSet rs = st.executeQuery("select * from emp");
                  while(rs.next()){
               
                       System.out.println("用戶名:"+rs.getString(2));
              }
                  rs.close();
                  st.close();
                  ct.close();
            } catch (ClassNotFoundException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
            
           }

          }

          posted @ 2011-09-26 21:57 Java_liyadong 閱讀(143) | 評論 (0)編輯 收藏

          package com.jdbc.odbc;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.ResultSet;
          import java.sql.SQLException;
          import java.sql.Statement;


          public class jdbc_demo1 {

          public static void main(String[] args) {
            
          try {
                 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                 Connection ct = DriverManager.getConnection("jdbc:odbc:mytest","scott","tiger");   //mytest為數據源名稱
             
                 Statement st = ct.createStatement();
                 ResultSet rs = st.executeQuery("select * from emp");
             
                 while(rs.next()){
                 
                   System.out.println("用戶名:"+rs.getString(2));
              
             }
            } catch (ClassNotFoundException e) {
             e.printStackTrace();
            } catch (SQLException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
           }

          posted @ 2011-09-26 21:55 Java_liyadong 閱讀(187) | 評論 (0)編輯 收藏
          僅列出標題
          共3頁: 上一頁 1 2 3 
          主站蜘蛛池模板: 镇平县| 车险| 正安县| 汝南县| 小金县| 长白| 达日县| 清苑县| 台中市| 聂拉木县| 思南县| 永川市| 乃东县| 金湖县| 香格里拉县| 贵德县| 资中县| 新蔡县| 布尔津县| 德保县| 贺兰县| 宣汉县| 区。| 北票市| 武宁县| 昭苏县| 故城县| 南汇区| 灌云县| 方城县| 平顶山市| 扶沟县| 江永县| 安阳市| 平武县| 浮梁县| 祁门县| 晋州市| 贵南县| 丰城市| 通榆县|