@Override
public void addAllEmp(List<Employee> employees) {
Connection conn = null;
PreparedStatement pst = null;
try {
conn = JDBCUtil.getConnect();
conn.setAutoCommit(false);
pst = conn.prepareStatement("insert into jdbc_emp values(jdbc_emp_id.nextval,?,?,?");
int count = 0;
for (Employee employee : employees) {
pst.setString(1, employee.getName());
pst.setString(2, employee.getPassword());
pst.setDouble(3, employee.getSal());
count++;
if (count==100) {
//执行批处理
pst.executeBatch();
//清空参数
pst.clearParameters();
count = 0;
}
}
pst.executeBatch();
conn.commit();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
/*if (conn != null) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}*/
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtil.close(conn, pst);
}
JAVA中使用JDBC做批量处理时,没有报错,但是数据没有插入数据库
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- engchina 2017-04-17 00:42关注
试下下面代码。
1,insert语句后面漏了个 )
2,追加 pst.addBatch();@Override public void addAllEmp(List<Employee> employees) { Connection conn = null; PreparedStatement pst = null; try { conn = JDBCUtil.getConnect(); conn.setAutoCommit(false); // add ")" for missing // pst = conn.prepareStatement( // "insert into jdbc_emp values(jdbc_emp_id.nextval,?,?,?"); pst = conn.prepareStatement( "insert into jdbc_emp values(jdbc_emp_id.nextval,?,?,?)"); int count = 0; for (Employee employee : employees) { pst.setString(1, employee.getName()); pst.setString(2, employee.getPassword()); pst.setDouble(3, employee.getSal()); // add addBatch() pst.addBatch(); count++; if (count == 100) { // 执行批处理 pst.executeBatch(); // 清空参数 pst.clearParameters(); count = 0; } } pst.executeBatch(); conn.commit(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { /* * if (conn != null) { try { conn.rollback(); } catch (SQLException * e1) { e1.printStackTrace(); } } */ // TODO Auto-generated catch block e.printStackTrace(); } finally { JDBCUtil.close(conn, pst); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
- ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
- ¥15 PPOCRLabel
- ¥15 混合键合键合机对准标识
- ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
- ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
- ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
- ¥200 C++表格文件处理-悬赏
- ¥15 Windows Server2016本地登录失败
- ¥15 复合卡卡号轨道写入芯片卡