今天早上百度了一早上,还是没用找到spring对纯jdbc事务的支持相关资料
   这儿的纯jdbc指的是类似如下代码:   /**
 * 
 * 执行SQL语句,返回影响的结果数
 * 
 * 
 * 
 * @param sql
 * 
 * @return
 * 
 * @throws Exception
 * 
 */
public int executeSQL(String sql) throws Exception {
PreparedStatement pstmt = null;
Connection dbConnection = null;
logSqlStatement(sql);
try {
dbConnection = JdbcUtils.getConnection();
pstmt = dbConnection.prepareStatement(sql);
int cnt = pstmt.executeUpdate();
return cnt;
} catch (SQLException ex) {
throw new DAOException("executeSQL时出错:" + ex.getMessage(), ex);
} finally {
DAOUtils.close(dbConnection, pstmt);
}
}不是要对hibernate和jdbctemplate 的事务支持,求解

解决方案 »

  1.   

    不用jdbctemplate,那就没spring什么事,你直接用jdbc的事务不就行了。
    conn.setAutoCommit(false);
    然后
    conn.commit(); 或者conn.rollback();
      

  2.   

    事务需要加在业务逻辑层,而不是dao层,譬如我们项目代码有1000多行的方法,前面数据都insert或update了,但是业务上,在后面做不过去了,报异常后,需要回滚前面执行的sql,使用的dao也不同,
    类似:conn.setAutoCommit(false);
    然后
    conn.commit(); 或者conn.rollback(); 
    这样的代码,只能放在dao里面
      

  3.   

    配置jdbcTemplate,异步访问好像有点问题,再就是整个项目都写的是jdbc的,如果要改为jdbcTemplate的话,可能比较麻烦