最佳答案
如果您不想通过URL执行此操作,则可以将Driver对象与DriverManager一起使用:
Properties props = new Properties();
props.setProperty("user",...);
props.setProperty("password",...);
props.setProperty("rewriteBatchedStatements","true");
Connection connection = DriverManager.getConnection(url,props);
如果你使用MysqLDataSource或MysqLConnectionPoolDataSource,那么你需要设置属性rewriteBatchedStatements(或调用setter setRewriteBatchedStatements(boolean))
要在获得连接后在运行时更改此设置,您应该能够使用:
((com.MysqL.jdbc.ConnectionProperties) connection).setRewriteBatchedStatements(true);
注意:我只查看了最后一个选项的MysqL Connector / J源代码,我还没有测试过.
更新
对于c3p0,您可以使用以下内容:
ComboPooledDataSource cpds = ...
Connection connection = cpds.getConnection();
connection.unwrap(com.MysqL.jdbc.ConnectionProperties.class).setRewriteBatchedStatements(true);
c3p0应该是com.mchange:c3p0:0.9.5.2,小心com.mchange – 与其他groupId这个代码不起作用.