@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 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 arduino控制ps2手柄一直报错
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题