Java操作資料庫注意點
阿新 • • 發佈:2019-01-25
1、addBatch批處理:
smt.addBatch(sql1);
smt.addBatch(sql2);
smt.addBatch(sql3);
smt.executeBatch();
注意:使用批處理需要注意查詢、新增、修改不能使用同一個Statement,否則會報異常:
java.sql.SQLException: 批處理中出現錯誤: batch must be either executed or cleared
批處理能同時處理insert和update操作。
2、迴圈遍歷ResultSet:
當使用while(rs.next())遍歷到最後一行的時候,如果沒有重新回到第一行,下次再使用
解決辦法:
st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
while(rs.next()){
......
}
rs.beforeFirst();
3、不能使用同一個Statement對兩個表進行查詢:
下面這種處理,會造成zszd_rs和gwzd_rs都沒有資料。
st = conn.createStatement();
String zszd_sql = "select * from HR_ZSZD";
zszd_rs = st.executeQuery(zszd_sql);
String gwzd_sql = "SELECT * FROM HR_GWZD";
gwzd_rs = st.executeQuery(gwzd_sql);
4、異常:java.sql.SQLException: 結果集已耗盡
ResultSet原本就沒有資料。或者遍歷到結尾後,又使用ResultSet。