在applicationContext.xml里配置datasource用的ProxoolDataSource,
sqlmapclient配置用这个这个datasource
出现了一个问题 就是sqlmapclient把autocommit设为false没有作用,因为想做个批处理
我想获取spring当前sqlmapclient的connection 将它设为非自动提交,怎么做啊?
通过DataSourceUtils.getConnection(DataSource);就能获取到设置的DataSource 然后获得connection
public static Connection getConnection()
throws SQLException
{
return DataSourceUtils.getConnection((DataSource)ServiceLocator.getBean("dataSource"));
但是ServiceLocator没有啊?
用sqlMapClient.getDataSource().setAutoCommit(false) 没有用,再sqlMapClient.getDataSource().getAutoCommit();还是true!!。。。。。
求解求解 求大神
在 Spring 中,您可以通过注入 DataSource 或者 DataSourceTransactionManager bean 来获取当前的 Connection。
首先,您可以在您的 DAO 类中注入 DataSource,然后调用 getConnection() 方法获取 Connection。这是一个示例代码:
@Autowired
private DataSource dataSource;
public void doSomething() throws SQLException {
Connection conn = dataSource.getConnection();
// use the connection to execute SQL statements
conn.close();
}
如果您想在事务中执行批处理操作,您可以注入 DataSourceTransactionManager bean,然后使用它的 getConnection() 方法获取 Connection。这是一个示例代码:
@Autowired
private DataSourceTransactionManager transactionManager;
@Transactional
public void doBatchUpdate() throws SQLException {
Connection conn = transactionManager.getConnection();
conn.setAutoCommit(false);
// use the connection to execute SQL statements in batch mode
conn.commit();
conn.close();
}
注意:在使用完 Connection 后,一定要记得关闭它。