5 回答

TA貢獻1825條經(jīng)驗 獲得超6個贊
[i]stmt_Select.close(); [/i] stmt_Select=con.createStatement(); [i] stmt_Update.close();[/i] stmt_Update=con.createStatement();
不要在循環(huán)里面頻繁的close, 全部放在rs.close()之前
參考如下
stmt_Select.close();
stmt_Update.close();
rs.close();

TA貢獻1820條經(jīng)驗 獲得超9個贊
PreparedStatement[quote] PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
[/quote]

TA貢獻1836條經(jīng)驗 獲得超3個贊
建議你使用Updatable statement,給你一段我以前寫過的代碼吧,這段代碼用來處理14萬條記錄,具體時間記不太清了,不過效率還是挺高的:
[code="java"]
String sql = "select ccrq,dt_factory_date from ajdq";
Connection con = DbUtil._CONNECTION;//獲得數(shù)據(jù)庫連接
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = st.executeQuery(sql);
int i=0;
while(rs.next()){
String date = rs.getString(1);
Date d = DateUtil.parse(date);
if(d!=null){
rs.updateTimestamp(2, new Timestamp(d.getTime()));
rs.updateRow();
i++;
System.out.print(".");
if(i%100==0){
System.out.println(i);
con.commit();
}
}
}
rs.close();
st.close();
System.out.println();
System.out.println(i);
con.commit();
con.close();
[/code]
添加回答
舉報