免費發(fā)布產(chǎn)品

掃描我,即刻查看

Java中JDBC驅(qū)動介紹

該商品已下架,歡迎挑選其他商品!
  • 單價:
    面議
  • 可售數(shù)量:
  • 品牌名稱:
  • 所在地:
    陜西西安
  • 產(chǎn)品規(guī)格:
  • 包裝說明:
  • 商品名稱:Java中JDBC驅(qū)動介紹
  • 自定義分類:西安java培訓(xùn)
  • 上架時間:2014/5/19 13:59
如果您發(fā)現(xiàn)商品信息不準確,歡迎糾錯
產(chǎn)品關(guān)鍵詞: Java,

JDBCJava操作數(shù)據(jù)庫的技術(shù)規(guī)范。他實際上定義了一組標準的操作數(shù)據(jù)庫的接口。為了能讓Java操作數(shù)據(jù)庫,必須要有實現(xiàn)了JDBC這些接口的類,不同的數(shù)據(jù)庫廠商為了讓Java語言能操作自己的數(shù)據(jù)庫,都提供了對JDBC接口的實現(xiàn)--這些實現(xiàn)了JDBC接口的類打成一個jar包,就是我們平時看到的數(shù)據(jù)庫驅(qū)動。由于不同的數(shù)據(jù)庫操作數(shù)據(jù)的機制不一樣,因此JDBC的具體實現(xiàn)也就千差萬別,但是你作為java程序員,你只和Java JDBC的接口打交到,才不用理會他們怎么實現(xiàn)的!呵呵,現(xiàn)在知道JDBC驅(qū)動是怎么回事了。當然,這些類可以自己去寫--如果你很牛!


西安達內(nèi)培訓(xùn)機構(gòu)(http://www.xatarena.cn)的Java培訓(xùn)講師表示,JDBC是一種可用于執(zhí)行SQL語句的JavaAPI(ApplicationProgrammingInterface應(yīng)用程序設(shè)計接口)。它由一些Java語言編寫的類和界面組成。JDBC為數(shù)據(jù)庫應(yīng)用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標準的應(yīng)用程序設(shè)計接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。JDBCJava Data Base Connectivity,java數(shù)據(jù)庫連接),由一些接口和類構(gòu)成的API。J2SE的一部分,由java.sql,javax.sql包組成。


1、JDBC驅(qū)動


JDBC驅(qū)動是JDBC API接口的具體實現(xiàn),不同數(shù)據(jù)庫的實現(xiàn)細節(jié)不同。

驅(qū)動類型(四種類型),一般優(yōu)先使用純Java的驅(qū)動,已獲得更好的效率。


2、JDBC操作數(shù)據(jù)庫的一般步驟


注冊驅(qū)動 (只做一次)

建立連接(Connection)

創(chuàng)建執(zhí)行SQL的語句(Statement)

執(zhí)行語句

處理執(zhí)行結(jié)果(ResultSet)

釋放資源


3、注冊JDBC驅(qū)動


有三種方式:

Class.forName(“com.mysql.jdbc.Driver”);

推薦這種方式,不會對具體的驅(qū)動類產(chǎn)生依賴。

DriverManager.registerDriver(com.mysql.jdbc.Driver);

會造成DriverManager中產(chǎn)生兩個一樣的驅(qū)動,并會對具體的驅(qū)動類產(chǎn)生依賴。

System.setProperty(“jdbc.drivers”,“driver1:driver2”);

雖然不會對具體的驅(qū)動類產(chǎn)生依賴;但注冊不太方便,所以很少使用。


DriverManager是一個驅(qū)動管理器,內(nèi)部有一個驅(qū)動注冊表(Map結(jié)構(gòu)),可以向其注冊多個JDBC驅(qū)動。


4、建立Connection


Connection conn= DriverManager.getConnection(url, user, password);

url格式:JDBC:子協(xié)議:子名稱//主機名:端口/數(shù)據(jù)庫名?屬性名=屬性值&

User,password可以用“屬性名=屬性值”方式告訴數(shù)據(jù)庫;

其他參數(shù)如:useUnicode=true&characterEncoding=GBK。


5、建立Statement、PreparedStatement


Statement是一個SQL執(zhí)行器,可以用來執(zhí)行一個靜態(tài)的SQL語句。

Statement st =conn.createStatement();

st.executeQuery(sql);


PreparedStatement是一個與定義的SQL執(zhí)行器,一般較Statement有防止SQL注入的功能,還有較好的執(zhí)行效率。

String sql ="select * from table_name where col_name=?";

PreparedStatementps = conn.preparedStatement(sql);

ps.setString(1,"col_value");

ps.executeQuery();


在數(shù)據(jù)庫連接沒有關(guān)閉的情況下,數(shù)據(jù)庫和驅(qū)動可以對PreperedStatement進行優(yōu)化,PreperedStatement對象可以被重用,從而避免頻繁編譯SQL


6、處理ResultSet


ResultSet表示一個查詢結(jié)果集。

ResultSet rs =statement.executeQuery(sql);

While(rs.next()){

rs.getString(“col_name”);

rs.getInt(“col_name”);

//…

}


7、釋放資源


釋放資源的順序是ResultSet,Statement,Connection;

Connection在使用完成后,必須關(guān)閉,ResultSet,Statement無所謂,只要Connection關(guān)閉了,它們也會被自動關(guān)閉(但資源不是立即被釋放)。

Connection的使用原則是盡量晚創(chuàng)建,盡量早的釋放。

在關(guān)閉資源異常的情況下,應(yīng)該將資源賦null值,以確保資源最大可能的被釋放掉。


8、數(shù)據(jù)類型


幾種特殊且比較常用的類型

1.DATA,TIME,TIMESTAMP? date,time,datetime

存:ps.setDate(i,d);ps.setTime(i,t); ps.setTimestamp(i, ts);

?。?/span>rs.getDate(i);rs.getTime(i); rs.getTimestamp(i);

2.CLOB ? text

存:ps.setCharacterStream(index,reader, length);

   ps.setString(i, s);

?。?/span>reader = rs.getCharacterStream(i);

   reader =rs.getClob(i).getCharacterStream();

   string = rs.getString(i);

3.BLOB ? blob

存:ps.setBinaryStream(i,inputStream, length);

?。?/span>rs.getBinaryStream(i);

   rs.getBlob(i).getBinaryStream();


9、事物


原子性(atomicity):組成事務(wù)處理的語句形成了一個邏輯單元,不能只執(zhí)行其中的一部分。

一致性(consistency):在事務(wù)處理執(zhí)行前后,數(shù)據(jù)庫是一致的(兩個賬戶要么都變,或者都不變)

隔離性(isolcation):一個事務(wù)處理對另一個事務(wù)處理沒有影響。

持續(xù)性(durability):事務(wù)處理的效果能夠被永久保存下來。


connection.setAutoCommit(false);//打開事務(wù)。

connection.commit();//提交事務(wù)。

connection.rollback();//回滾事務(wù)。


10、執(zhí)行存儲過程


CallableStatement(從PreperedStatement擴展來)

cs =connection.prepareCall(“{call psname(?,?,?)}”);

cs.registerOutParameter(index,Types.INTEGER);

cs.setXXX(i,xxxx);

cs.executeUpdate();

intid=cs.getInt(index);


產(chǎn)品關(guān)鍵詞: Java,
Java中JDBC驅(qū)動介紹
溫馨提示: 以上是關(guān)于“Java中JDBC驅(qū)動介紹”的詳細介紹,產(chǎn)品由“西安達內(nèi)”為您提供,如果您感興趣可以聯(lián)系供應(yīng)商或者讓供應(yīng)商主動聯(lián)系您,您也可以查看更多與“其他商務(wù)服務(wù)”相關(guān)的產(chǎn)品!
*
*

聯(lián)系方式

西安達內(nèi)先生 ()
聯(lián)系我時務(wù)必告知是在“賽門國際商貿(mào)網(wǎng)”上看到的!

西安達內(nèi)

企業(yè)旺鋪

  • 地址:陜西 西安市陜西省西安市興慶南路10號交大出版大廈6層
  • 電話:86-029-82222601傳真:86--
快速鏈接企業(yè)微店

掃一掃“二維碼”快速鏈接企業(yè)微店

推薦使用 微信UC 掃一掃 等掃碼工具

微店融入移動互聯(lián)網(wǎng)帶來更多的商業(yè)機會。

免責聲明: 本站信息由會員自行提供,內(nèi)容的真實性、準確性和合法性由發(fā)布會員負責。本站不提供任何保證,并不承擔任何法律責任。

企業(yè)相關(guān)產(chǎn)品

Url:/5869658 [用戶IP:23.19.74.84-代理IP:66.232.7.189], Time:2025/02/06 下 06:51:53