使用BasicDataSource的MYSQL事务

时间:2014-03-02 12:02:09

标签: java mysql database transactions

我使用Apache BasicDataSource来处理我的数据库代码 - 我只是创建方法来执行访问数据库的特定任务。下面是一个例子;

/**
 * Update a users display name
 * @param userid the user id to update for
 * @param displayName the display name to change too
 * @return true if update suceeded 
 */
public static boolean updateDisplayName(String userid, String displayName){
    Connection conn = null;
    String sql = "update UserAccount set displayname = ? where userid = ? ";

    try {
        conn = source.getConnection();
        PreparedStatement st = conn.prepareStatement(sql);
        st.setString(1,displayName);
        st.setString(2,userid);
        st.executeUpdate();
        return true;
    } catch (Exception e) {
        logger.warn("An error occured when updating the display name for " + userid, e);
    } finally{
        closeConnection(conn);
    }
    return false;
}

我有一个谷歌,似乎无法找到任何如何使用交易的例子。请有人可以告诉我如何做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

当你连接时,将此连接标记为auto commit false

connection.setAutoCommit(false);

一旦你成功完成了你的任务提交该交易

connection.commit();

如果异常回滚该事务

connection.rollback();

正常的jdbc事务也可以与其他事务实现一起使用  ..查看此示例here