我从c3p0池获得了批量插入的连接,并且我设置了autoCommit = false,在使用之后,我把它放回到轮询中。如果autoCommit = false仍然对此连接有效吗?
答案 0 :(得分:0)
没有。根据JDBC规范,新的Connections是autocommit = true,而c3p0实现了透明的连接池,这意味着在c3p0应用程序中正常运行的应用程序也应该使用非池化的连接源正常运行。
如果您愿意,可以通过定义ConnectionCustomizer来覆盖此行为。有点像...
package mypkg;
import com.mchange.v2.c3p0.AbstractConnectionCustomizer;
import java.sql.Connection;
public class AutocommitConnectionCustomizer extends AbstractConnectionCustomizer {
@Override
public void onCheckOut(Connection c, String parentDataSourceIdentityToken) throws Exception {
c.setAutoCommit( false );
}
}
然后,在你的配置中......
c3p0.connectionCustomizerClassName=mypkg.AutocommitConnectionCustomizer
我希望这有帮助!