Rumah > Soal Jawab > teks badan
大家讲道理2017-04-18 10:37:54
JDBC sendiri menyokong kemas kini kelompok, API khusus adalah seperti berikut:
addBatch(String sql): Kaedah kelas Pernyataan, anda boleh menambah berbilang pernyataan sql pada senarai pernyataan SQL objek Pernyataan
addBatch(): Kaedah kelas PreparedStatement boleh menambah berbilang penyata sql yang telah dikompilasi pada senarai pernyataan SQL bagi objek PreparedStatement
executeBatch(): Hantar semua pernyataan SQL dalam objek Statement atau senarai pernyataan bagi Proses objek PreparedStatement pangkalan data
clearBatch(): Kosongkan senarai pernyataan SQL semasa
Menggunakan API kemas kini kelompok, saya akan melaraskan kod anda seperti berikut: (Nota: Jika senarai SQL mengandungi terlalu banyak pernyataan SQL yang belum selesai, ralat OutOfMemory mungkin berlaku. Oleh itu, senarai pernyataan SQL perlu diproses tepat pada masanya cara.)
public class AddBatchSql {
public void add(String fid,String title,String content){
Connection connection = null;
Statement stmt = null;
String sql1 = null;
String sql2 = null;
try{
connection = ConnectionUtils.getConnection();
stmt = connection.createStatement();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateValue = simpleDateFormat.format(new Date());
sql1 = "insert into news_base(fid,title,date,author) values("+fid+",'"+title+"','"+dateValue+"','Admin')";
sql2 = "insert into news_content (cid,content) values("+fid+",'"+content+"')";
List<String> sqlList = new ArrayList<String>();
sqlList.add(sql1);
sqlList.add(sql2);
for (int i = 0; i < sqlList.size(); i++) {
String sql = sqlList.get(i);
stmt.addBatch(sql);
if (i==500) {
stmt.executeBatch();//为避免出现OutOfMemory错误,及时处理
stmt.clearBatch();//清空列表
}
}
//最后一次列表不足500条,处理
stmt.executeBatch();
}catch(Exception e){
e.printStackTrace();
}finally{
if(stmt != null){
try{
stmt.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
伊谢尔伦2017-04-18 10:37:54
Berbilang rekod yang berkaitan mesti ditulis baris demi baris menggunakan kaedah ini.
高洛峰2017-04-18 10:37:54
Manfaat rangka kerja ditunjukkan, ia akan membantu anda melakukan operasi berulang