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,再次运行程序,数据库数据没有任何变化