日期:2014-05-20  浏览次数:20702 次

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   DatabaseRuntimeException   {

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去掉,然后在看看能不能入库!