jdbc3個(gè)接口用來(lái)處理sql的執行,是Statement PreparedStatement CallableStatement
提供適當的Statement接口
批量執行sql
從數據庫批量獲取數據
PreparedStatement 比Statement性能要好 主要體現在一個(gè)sql語(yǔ)句多次重復執行的情況
PreparedStatemnt只編譯解析一次而Statement每次編譯一次.
批量修改數據庫
Statement 提供了方法addBatch(String)和executeBatch()
調用方法為stmt.addBatch("isnert....."); stmt.addBatch("update.....")
stmt.executeBatch();
也可以用PreparedStatement從而更好的提高性能.
pstmt=conn.preparedStatement("insert into test_table(......) values(....?)");
pstmt.setString(1,"aaa");
pstmt.addBatch();
pstmt.setString(1,"bbb");
pstmt.addBatch();
.....
pstmt.executeBatch();
批量地從數據庫中取數據.
通過(guò)setFetchSize()和getFectchSize()方法來(lái)設定和查看這個(gè)參數.這個(gè)參數對體統的性能影響比較大.
這個(gè)參數太小會(huì )嚴重地降低程序地性能.
Connection Statement ResultSet都有這個(gè)參數,他們對性能地影響順序是:
ResultSet---------Statement---------Connection
(4)優(yōu)化ResultSet.
體現在以下幾個(gè)方面
批量讀取數據.合理設置ResultSet的getFetchSize()和setFetchSize()方法中的參數
使用正確的get和set方法
使用整數而不是字段名作為參數性能比較高,
例如 setInt(1,100);
setString(2,"aaaa");
比 setInt("id","100");
setString("name","aaaa");
性能好
設置適當的滾動(dòng)方向.有3個(gè)方向FETCH_FORWORD,FETCH_REVERSE FETCH_UNKNOWN
單向滾動(dòng)性能比較高.
其他方面的性能優(yōu)化
及時(shí)顯示的關(guān)閉Connection Statement ResultSet
其中Connection可以用Connetion Pool處理.
使用數據庫系統的強大查詢(xún)功能去組織數據.這樣程序運行是和數據庫服務(wù)的交互次數少,數據庫返回給
程序的記錄條數少的多,所以性能有很大的提高.
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。