konhon

          忘掉過去,展望未來。找回自我,超越自我。
          逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因為某個理由而傷心難過, 但我卻能找個理由讓自己快樂.

          Google

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks
          連接oracle數(shù)據(jù)庫的各種oracle jdbc驅(qū)動程序的細(xì)節(jié)。
          這些細(xì)節(jié)包括:
          1、導(dǎo)入jdbc包
          2、注冊oracle jdbc驅(qū)動程序
          3、打開數(shù)據(jù)庫連接
          4、執(zhí)行sql dml語句在數(shù)據(jù)庫表中獲取、添加、修改和刪除行

          一、jdbc驅(qū)動程序
          共有有4種
          1、thin驅(qū)動程序
          thin驅(qū)動程序是所有驅(qū)動程序中資源消耗最小的,而且完全用java編寫的。
          該驅(qū)動程序只使用tcp/ip且要求oracle net。被稱為第4類驅(qū)動程序。
          它使用ttc協(xié)議與oracle數(shù)據(jù)庫進(jìn)行通信。能夠在applet、application中使用。
          2、oci驅(qū)動程序
          oci驅(qū)動比thin需要資源要多,但性能通常好一點。oci驅(qū)動適合于部署在
          中間層的軟件,如web服務(wù)器。不能在applet中使用oci驅(qū)動。是第2類驅(qū)動程序。
          不完全用java寫的,還包含了c代碼。該驅(qū)動有許多附加的性能增強特性,
          包括高級的連接緩沖功能。
          注意:oci驅(qū)動要求在客戶計算機上安裝它。
          3、服務(wù)器內(nèi)部驅(qū)動程序
          服務(wù)器內(nèi)部驅(qū)動程序提供對數(shù)據(jù)庫的直接訪問,oracle jvm使用它與數(shù)據(jù)庫進(jìn)行通信。
          oracle jvm是與數(shù)據(jù)庫集成的java virtual machine,可以使用oracle jvm將
          java類裝載進(jìn)數(shù)據(jù)庫,然后公布和運行這個類中包含的方法。
          4、服務(wù)器thin驅(qū)動程序
          服務(wù)器端thin驅(qū)動程序也是由oracle jvm使用的,它提供對遠(yuǎn)程數(shù)據(jù)庫的訪問。
          也是完全用java編寫的。


          二、導(dǎo)入jdbc包
          三、注冊oracle jdbc驅(qū)動程序
          必須先向java程序注冊oracle jdbc驅(qū)動程序,然后才能打開數(shù)據(jù)庫連接。
          有兩種注冊oracle jdbc驅(qū)動程序的辦法。
          1、使用java.lang.class的forname()方法
          例子:class.forname(oracle.jdbc.oracledriver);
          2、使用jdbc drivermanager類的registerdriver()方法。
          例子:drivermanager.registerdriver(new oracle.jdbc.oracledriver());
          如果使用oracle8i jdbc驅(qū)動程序,那么需要導(dǎo)入oracle.jdbc.driver.oracledriver類,
          然后注冊這個類的實例。
          例子:
          import oracle.jdbc.driver.oracledriver;
          drivermanager.registerdriver(new oracle.jdbc.oracledriver());
          注意:從jdbc2.0開始,只用jdbc驅(qū)動程序的更標(biāo)準(zhǔn)辦法是通過數(shù)據(jù)源。
          四、打開數(shù)據(jù)庫連接
          必須先打開數(shù)據(jù)庫連接,然后才能在java程序中執(zhí)行sql語句。打開數(shù)據(jù)庫連接
          的主要辦法。
          1、drivermanager類的getconnection()方法。
          drivermanager.getconnection(url,username,passwrod);
          url:程序要連接的數(shù)據(jù)庫,以及要使用的jdbc驅(qū)動程序
          url的結(jié)構(gòu)依賴于jdbc驅(qū)動程序的生產(chǎn)商。對于oracle jdbc驅(qū)動程序,數(shù)據(jù)庫url的結(jié)構(gòu):

          driver_name是程序使用的oracle jdbc驅(qū)動程序的名稱。如:
          jdbc:oracle:thin oracle jdbc thin驅(qū)動程序
          jdbc:oracle:oci oracle jdbc oci驅(qū)動程序
          jdbc:oracle:oci8 oracle jdbc oci驅(qū)動程序
          driver_information是連接數(shù)據(jù)庫所需的驅(qū)動程序特有的信息。這依賴于使用的驅(qū)動程序。
          對于oracle jdbc thin驅(qū)動程序,可以用
          host_name:port:database_sid 或者 oracle net關(guān)鍵字-值對
          (description=(address=(host=host_name)(protocol=tcp)(port=port()
          (connect_data=(sid=database_sid)))
          host_name: 運行數(shù)據(jù)庫的機器的名稱
          port: net數(shù)據(jù)庫監(jiān)聽器等待這個端口上的請求,默認(rèn)是1521
          database_sid: 要連接的數(shù)據(jù)庫實例的oracle sid。
          username: 程序連接數(shù)據(jù)庫時使用的數(shù)據(jù)庫用戶名
          passwrod: 用戶名的口令
          例子:
          connection myconnection=drivermanager.getconnection(
          jdbc:oracle:thin:@localhost:1521:orcl,
          store_user,
          store_password);
          connection myconnection=drivermanager.getconnection(
          jdbc:oracle:oci:@(description=(address=(host=localhost)
          (protocol=tcp)(port=1521))(connect_data=(sid=orcl))),
          store_user,
          store_password);
          2、使用oracle數(shù)據(jù)源對象,必須先創(chuàng)建這個對象,然后連接它。使用這種方法
          采用了一種設(shè)置數(shù)據(jù)庫連接信息的標(biāo)準(zhǔn)化方式,oracle數(shù)據(jù)源對象可以與
          java naming and directory interface(java名字與目錄接口,jndi)一起使用。

          posted on 2006-03-21 07:18 konhon 優(yōu)華 閱讀(940) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 吴旗县| 鸡西市| 巴林左旗| 兴安县| 凉山| 天津市| 德庆县| 泊头市| 公安县| 泸水县| 林西县| 霍山县| 德庆县| 浦北县| 黄平县| 葵青区| 伊吾县| 蛟河市| 乐清市| 武川县| 鹤庆县| 乌鲁木齐市| 宁乡县| 泽州县| 新源县| 菏泽市| 积石山| 获嘉县| 隆德县| 乐平市| 甘德县| 蓬莱市| 黔西县| 保德县| 通许县| 临高县| 高雄县| 台南市| 闸北区| 定远县| 郑州市|