免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
批處理batch,執(zhí)行多個(gè)SQL語(yǔ)句
批處理batch,執(zhí)行多個(gè)SQL語(yǔ)句。
[sql] view plaincopy
try{
stmt=conn.createStatement();
conn.setAutoCommit(false);//取消自動(dòng)提交
stmt.addBatch("insert into person (name,password,age)values('A','AAA',20)");
stmt.addBatch("insert into person (name,password,age)values('B','BBB',20)");
stmt.addBatch("insert into person (name,password,age)values('C','CCC',24)");
stmt.addBatch("insert into person (name,password,age)values('D','DDD',46)");
stmt.addBatch("insert into person (name,password,age)values('E','EEE',20)");
//執(zhí)行批處理語(yǔ)句
stmt.excuteBatch();
//如果沒(méi)有異常,則執(zhí)行此段代碼
//提交事務(wù),真正向數(shù)據(jù)庫(kù)中提交數(shù)據(jù)
conn.commit();
}catch(Exception e){
//將數(shù)據(jù)回滾
try{
conn.rollback();
}catch(Exception e1){
}
}finally{
//關(guān)閉
}
注意其中的兩個(gè)SQL語(yǔ)句,其一是stmt.addBatch();其二是stmt.excuteBatch();
在批量更新SQL操作的時(shí)候建議使用addBatch,這樣效率是高些,數(shù)據(jù)量越大越能體現(xiàn)出來(lái).
Statement接口里有兩個(gè)方法:
void
addBatch(String sql)
將給定的 SQL 命令添加到此 Statement 對(duì)象的當(dāng)前命令列表中。通過(guò)調(diào)用方法 executeBatch 可以批量執(zhí)行此列表中的命令。
int[]
executeBatch()
將一批命令提交給數(shù)據(jù)庫(kù)來(lái)執(zhí)行,如果全部命令執(zhí)行成功,則返回更新計(jì)數(shù)組成的數(shù)組。
返回:
包含批中每個(gè)命令的一個(gè)元素的更新計(jì)數(shù)所組成的數(shù)組(數(shù)組中的每個(gè)元素為:成功處理了命令后,執(zhí)行命令所影響數(shù)據(jù)庫(kù)中行數(shù)的更新計(jì)數(shù))。數(shù)組的元素根據(jù)將命令添加到批中的順序排序。
PreparedStatement接口里:重寫了addBatch()的方法,executeBatch()并沒(méi)有重寫
void
addBatch()  <注意:PreparedStatement的addBatch( )沒(méi)有參數(shù)的>
將一組參數(shù)添加到此 PreparedStatement 對(duì)象的批處理命令中。
PreparedStatement.addbatch()的使用:
JDBC批量更新pstmt.addBatch();的問(wèn)題
在數(shù)據(jù)量越大的時(shí)候 越能體現(xiàn)addBatch()的優(yōu)勢(shì)
因?yàn)閿?shù)據(jù)庫(kù)的處理速度是非常驚人的單次吞吐量很大執(zhí)行效率極高
addBatch()把若干sql語(yǔ)句裝載到一起,然后一次送到數(shù)據(jù)庫(kù)執(zhí)行,執(zhí)行需要很短的時(shí)間
而pstmt.executeUpdate()是一條一條發(fā)往數(shù)據(jù)庫(kù)執(zhí)行的時(shí)間都消耗在數(shù)據(jù)庫(kù)連接的傳輸上面
舉個(gè)例子可以幫助理解: 我這有一臺(tái)超大功率的面粉加工機(jī),前者相當(dāng)于 把所有農(nóng)戶袋裝的麥子收集起來(lái)用卡車一次送往加工廠 后者相當(dāng)于農(nóng)戶排好隊(duì)用同樣的卡車一人一人的往加工廠送麥子 麥子加工5分鐘完成,但是每個(gè)人到工廠就得3小時(shí),我數(shù)據(jù)庫(kù)執(zhí)行效率再高也沒(méi)用,時(shí)間都耗在傳輸?shù)穆飞狭耍?!這就出現(xiàn)了數(shù)據(jù)傳輸?shù)男阅芷款i addBatch就是為解決這樣的問(wèn)題而產(chǎn)生的! Statement和PreparedStatement的區(qū)別就不多廢話了,直接說(shuō)PreparedStatement最重要的addbatch()結(jié)構(gòu)的使用.
1.建立鏈接,(打電話撥號(hào) )
Connection    connection =getConnection();
2.不自動(dòng) Commit (瓜子不是一個(gè)一個(gè)吃,全部剝開(kāi)放桌子上,然后一口舔了)
connection.setAutoCommit(false);
3.預(yù)編譯SQL語(yǔ)句,只編譯一回哦,效率高啊.(發(fā)明一個(gè)剝瓜子的方法,以后不要總想怎么剝瓜子好.就這樣剝.)
PreparedStatement statement= connection.prepareStatement("INSERT INTO TABLEX VALUES(?, ?)");
4.來(lái)一個(gè)剝一個(gè),然后放桌子上
//記錄1
statement.setInt(1, 1);
statement.setString(2, "Cujo");
statement.addBatch();//把這條執(zhí)行語(yǔ)句加到PreparedStatement對(duì)象的批處理命令中
//記錄2
statement.setInt(1, 2);
statement.setString(2, "Fred");
statement.addBatch();//把這條執(zhí)行語(yǔ)句加到PreparedStatement對(duì)象的批處理命令中
//記錄3
statement.setInt(1, 3);
statement.setString(2, "Mark");
statement.addBatch(); //把這條執(zhí)行語(yǔ)句加到PreparedStatement對(duì)象的批處理命令中
//批量執(zhí)行上面3條語(yǔ)句. 一口吞了,很爽
int [] counts =statement.executeBatch();//把以上添加到批處理命令中的所有命令一次過(guò)提交給數(shù)據(jù)庫(kù)來(lái)執(zhí)行
//Commit it 咽下去,到肚子(DB)里面
connection.commit();
關(guān)于兩個(gè)prepareStatement方法的區(qū)別:兩者都是創(chuàng)建一個(gè) PreparedStatement 對(duì)象來(lái)將參數(shù)化的 SQL 語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù),區(qū)別僅僅在于,第二個(gè)PreparedStatement對(duì)象有個(gè)ResultSet  getGeneratedKeys();方法可以返回執(zhí)行Statement對(duì)象而創(chuàng)建的任何自動(dòng)生成的鍵(主要是自增的鍵)的結(jié)果集
PreparedStatement
prepareStatement(String sql)
創(chuàng)建一個(gè) PreparedStatement 對(duì)象來(lái)將參數(shù)化的 SQL 語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。
PreparedStatement
prepareStatement(String sql,int autoGeneratedKeys)
創(chuàng)建一個(gè)默認(rèn) PreparedStatement 對(duì)象,該對(duì)象能獲取自動(dòng)生成的鍵。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
iBatis框架batch處理問(wèn)題分析及優(yōu)化
批量處理JDBC語(yǔ)句提高處理速度
批處理JDBC語(yǔ)句以提高處理速度
addBatch的用法
Statement 優(yōu)化
關(guān)于PreparedStatement.addBatch()方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服