jdbc3個接口用來處理sql的執(zhí)行,是Statement PreparedStatement CallableStatement 提供適當(dāng)?shù)腟tatement接口 批量執(zhí)行sql 從數(shù)據(jù)庫批量獲取數(shù)據(jù) PreparedStatement 比Statement性能要好 主要體現(xiàn)在一個sql語句多次重復(fù)執(zhí)行的情況 PreparedStatemnt只編譯解析一次而Statement每次編譯一次. 批量修改數(shù)據(jù)庫 Statement 提供了方法addBatch(String)和executeBatch() 調(diào)用方法為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(); 批量地從數(shù)據(jù)庫中取數(shù)據(jù). 通過setFetchSize()和getFectchSize()方法來設(shè)定和查看這個參數(shù).這個參數(shù)對體統(tǒng)的性能影響比較大. 這個參數(shù)太小會嚴(yán)重地降低程序地性能. Connection Statement ResultSet都有這個參數(shù),他們對性能地影響順序是: ResultSet---------Statement---------Connection (4)優(yōu)化ResultSet. 體現(xiàn)在以下幾個方面 批量讀取數(shù)據(jù).合理設(shè)置ResultSet的getFetchSize()和setFetchSize()方法中的參數(shù) 使用正確的get和set方法 使用整數(shù)而不是字段名作為參數(shù)性能比較高, 例如 setInt(1,100); setString(2,"aaaa"); 比 setInt("id","100"); setString("name","aaaa"); 性能好 設(shè)置適當(dāng)?shù)臐L動方向.有3個方向FETCH_FORWORD,FETCH_REVERSE FETCH_UNKNOWN 單向滾動性能比較高. 其他方面的性能優(yōu)化 及時顯示的關(guān)閉Connection Statement ResultSet 其中Connection可以用Connetion Pool處理. 使用數(shù)據(jù)庫系統(tǒng)的強(qiáng)大查詢功能去組織數(shù)據(jù).這樣程序運(yùn)行是和數(shù)據(jù)庫服務(wù)的交互次數(shù)少,數(shù)據(jù)庫返回給 程序的記錄條數(shù)少的多,所以性能有很大的提高. |
|