java中执行大量insert语句时候,不报错也不更新数据库的问题
用java写了一个小工具,用来执行.sql文件
做了次测试,如果.sql文件有一万条insert语句的时候不报错,也不更新数据库。(更新的是postgres数据库,拷出来再postgres里可以执行)
java的代码是:
Configuration config = new Configuration(DBConfigName);
Connection conn = ConnectionUtil.getConnection(config);
PreparedStatement ps;
try {
ps = conn.prepareStatement(sql.toString());
ps.execute();
ps.close();
....
}
....
public static Connection getConnection(Configuration config) throws Database
RuntimeException {
Connection con;
try{
Class.forName(config.getDriverName());
con = DriverManager.getConnection(
config.getUrl(),
config.getUsername(),
config.getPassword());
con.setAutoCommit(false);
return con;
} catch(Exception e) {
throw new DatabaseRuntimeException(e);
}
}
那位高手指正以下,谢谢!
------解决方案--------------------don 't forget to COMMIT!
------解决方案--------------------楼上的说得对。
conn.commit();
------解决方案--------------------应该不是COMMIT的问题,不然楼主说的 "如果是1000条数据的时候,可以执行成功 "那是如何办到的.
------解决方案--------------------建议先把commit去掉,然后在看看能不能入库!