「已注销」
2019-10-03 22:18
采纳率: 50%
浏览 329
已采纳

JDBC mysql批处理 插入数据似乎遇到了条数限制,请教解决方法

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String sql = "INSERT INTO data VALUES(?)";
        PreparedStatement ps = null;
        try {
            //设置不允许自动提交数据,connection为类私有变量,在init方法中赋值
            connection.setAutoCommit(false);
            ps = connection.prepareStatement(sql);
            for (int i = 0; i < 20000; i++) {
                ps.setObject(1, i);
                //攒sql
                ps.addBatch();
                //执行batch
                if (i % 1000 == 0) {
                    ps.executeBatch();
                    //清空batch
                    ps.clearBatch();
                }
            }
            //全部执行完后一次提交数据
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

只能插入500条不知是不是数据库插入条数限制

mysql URL配置:
jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

我把i的初始值改为10000,再次运行程序,数据库数据没有任何变化

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2019-10-04 10:28
    已采纳

    更改下超时设置 https://blog.csdn.net/qq_15076569/article/details/82191512
    看看输出的异常信息是什么

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题