久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java JDBC編程總結(jié)

 小米錢 2015-04-12
JDBC編程總結(jié)

 

JDBC的基本原理
JDBC是Java操作數(shù)據(jù)庫的技術(shù)規(guī)范,。他實際上定義了一組標(biāo)準(zhǔn)的操作數(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ù)的機(jī)制不一樣,,因此JDBC的具體實現(xiàn)也就千差萬別,但是你作為java程序員,,你只和Java JDBC的接口打交到,,才不用理會他們怎么實現(xiàn)的!呵呵,,現(xiàn)在知道JDBC驅(qū)動是怎么回事了,。當(dāng)然,這些類可以自己去寫--如果你很牛,!
1,、JDBC
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接),由一些接口和類構(gòu)成的API。J2SE的一部分,,由java.sql,javax.sql包組成,。
2、JDBC驅(qū)動
JDBC驅(qū)動是JDBC API接口的具體實現(xiàn),,不同數(shù)據(jù)庫的實現(xiàn)細(xì)節(jié)不同,。
驅(qū)動類型(四種類型),一般優(yōu)先使用純Java的驅(qū)動,,已獲得更好的效率,。
3、JDBC操作數(shù)據(jù)庫的一般步驟
注冊驅(qū)動 (只做一次)
建立連接(Connection)
創(chuàng)建執(zhí)行SQL的語句(Statement)
執(zhí)行語句
處理執(zhí)行結(jié)果(ResultSet)
釋放資源
4,、注冊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ū)動,。
5、建立Connection
Connection conn = DriverManager.getConnection(url, user, password);
url格式:JDBC:子協(xié)議:子名稱//主機(jī)名:端口/數(shù)據(jù)庫名,?屬性名=屬性值&…
User,password可以用“屬性名=屬性值”方式告訴數(shù)據(jù)庫,;
其他參數(shù)如:useUnicode=true&characterEncoding=GBK。
6,、建立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=?";
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, "col_value");
ps.executeQuery();
在數(shù)據(jù)庫連接沒有關(guān)閉的情況下,,數(shù)據(jù)庫和驅(qū)動可以對PreperedStatement進(jìn)行優(yōu)化,PreperedStatement對象可以被重用,,從而避免頻繁編譯SQL,。
7、處理ResultSet
ResultSet表示一個查詢結(jié)果集,。
ResultSet rs = statement.executeQuery(sql);
While(rs.next()){
 rs.getString(“col_name”);
 rs.getInt(“col_name”);
 //…
}
8,、釋放資源
釋放資源的順序是ResultSet, Statement,Connection,;
Connection在使用完成后,必須關(guān)閉,,ResultSet, Statement無所謂,只要Connection關(guān)閉了,,它們也會被自動關(guān)閉(但資源不是立即被釋放),。
Connection的使用原則是盡量晚創(chuàng)建,盡量早的釋放,。
在關(guān)閉資源異常的情況下,,應(yīng)該將資源賦null值,以確保資源最大可能的被釋放掉,。
9,、數(shù)據(jù)類型
幾種特殊且比較常用的類型
1.DATA,TIME,TIMESTAMP? date,time,datetime
存:ps.setDate(i,d); ps.setTime(i,t); ps.setTimestamp(i, ts);
取:rs.getDate(i); rs.getTime(i); rs.getTimestamp(i);
2.CLOB ? text
存:ps.setCharacterStream(index, reader, length);
    ps.setString(i, s);
?。簉eader = rs. getCharacterStream(i);
    reader = rs.getClob(i).getCharacterStream();
    string = rs.getString(i);
3.BLOB ? blob
存:ps.setBinaryStream(i, inputStream, length);
?。簉s.getBinaryStream(i);
    rs.getBlob(i).getBinaryStream();
10、事物
原子性(atomicity):組成事務(wù)處理的語句形成了一個邏輯單元,,不能只執(zhí)行其中的一部分,。
一致性(consistency):在事務(wù)處理執(zhí)行前后,數(shù)據(jù)庫是一致的(兩個賬戶要么都變,,或者都不變),。
隔離性(isolcation):一個事務(wù)處理對另一個事務(wù)處理沒有影響。
持續(xù)性(durability):事務(wù)處理的效果能夠被永久保存下來 ,。
connection.setAutoCommit(false);//打開事務(wù),。
connection.commit();//提交事務(wù)。
connection.rollback();//回滾事務(wù),。
11,、隔離級別
隔離級別是控制并發(fā)訪問數(shù)據(jù)的安全話題。
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
V:可能出現(xiàn),,X:不會出現(xiàn)
 
隔離級別
臟讀
不可重復(fù)讀
幻讀
讀未提交(Read uncommitted
V
V
V
讀已提交(Read committed
x
V
V
可重復(fù)讀(Repeatable read
x
x
V
可串行化(Serializable
x
x
x
12,、執(zhí)行存儲過程
CallableStatement(從PreperedStatement擴(kuò)展來)
cs = connection.prepareCall(“{call psname(?,?,?)}”);
cs.registerOutParameter(index, Types.INTEGER);
cs.setXXX(i, xxxx);
cs.executeUpdate();
int id=cs.getInt(index);

本文出自 “熔 巖” 博客,轉(zhuǎn)載請與作者聯(lián)系,!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多