gpt4 book ai didi

java - BasicDataSource 提交不起作用

转载 作者:行者123 更新时间:2023-12-02 06:56:10 24 4
gpt4 key购买 nike

我已配置数据源并将自动提交设置为 false。

<bean id="dbDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
<property name="driverClassName" value="${widget.database.driver}" />
<property name="url" value="${widget.database.url}" />
<property name="defaultAutoCommit" value="false" />
<property name="accessToUnderlyingConnectionAllowed" value="true" />
<property name="username" value="${widget.database.username}" />
<property name="password" value="${widget.database.password}" />
<property name="maxActive" value="${widget.database.maxActive}" />
<property name="maxIdle" value="${widget.database.maxIdle}" />
</bean>

在我的 DAO 类中我已经做到了。

    public void insertDIMFactToDB(WidgetJobOutput jobOutput) throws DataAccessException {
int rowsInserted=0;
try {
logger.info("Databse insert for DIMCODE " + jobOutput.getDimCode() + " having DIMFACT value as : " + + jobOutput.getDimFact());
jdbcTemplate = new JdbcTemplate(dataSource);

Object[] params = new Object[] {
jobOutput.getDimCode(),
jobOutput.getDimFact()
};
rowsInserted = jdbcTemplate.update(DBConstants.INS_WIDGET_HRLY_DATA,
params);
//logger.info("Successfully inserted/updated " + rowsInserted + " in DB");

} catch (DataAccessException e) {
throw e ;
}
// commit everything
try {
DataSourceUtils.getConnection(jdbcTemplate.getDataSource()).commit();
logger.info("Successfully inserted/updated " + rowsInserted + " in DB");
} catch (SQLException e) {
logger.error("Error Occured while commiting data into DB:-"+ ExceptionUtils.getFullStackTrace(e));
}


}

但它既不抛出任何异常也不提交数据。请帮我找到错误。提前致谢

最佳答案

我们还需要查看 DAO 源,但您似乎正在向正在执行 SQL 的连接提交不同的连接。

dataSource.getConnection().commit();

将从池中获取下一个可用连接,该连接不会是您刚刚用于更新的连接(因为该连接可能仍在使用中)。

关于java - BasicDataSource 提交不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com