在我的程序中,我在池中有几个线程,每个线程都试图写入数据库。创建的线程数是动态的。当创建的线程数只有一个时,一切都可以正常工作。但是,当有多线程执行时,我得到错误:
org.apache.ddlutils.DatabaseOperationException: org.postgresql.util.PSQLException: Cannot commit when autoCommit is enabled.
我猜想,也许因为每个线程都是并行执行的,所以两个线程试图同时写入并产生此错误。
您认为是这种情况吗?如果不是,是什么导致了这个错误?
否则,如果我说的是问题所在,我能做些什么来解决它呢?
发布于 2011-08-03 01:04:43
在jdbc代码中,您应该在获取连接后立即关闭自动提交。如下所示:
DataSource datasource = getDatasource(); // fetch your datasource somehow
Connection c = null;
try{
c = datasource.getConnection();
c.setAutoCommit(false);https://stackoverflow.com/questions/6915481
复制相似问题