关于Java连接数据库更新不了数据的解决办法:executeUpdate()方法

问题

问题描述:Java写的一个MySQL帮助类能够正常连接MySQL数据库,且能够查询MySQL数据库的数据,封装了一个更新数据的方法,执行数据更新,没有异常,返回Int值,但是无法更新数据库的数据

问题分析:语法没有错误,sql语句也没有任何错误,很奇怪的问题

解决办法:因为在getConnection()方法中将自动提交设置为了false, conn.setAutoCommit(false);顾需要在执行查询方法中添加提交方法。

代码如下:

<pre>
正确的代码:
public int executeUpdate(String sql) throws SQLException{
Statement execSql = null;
execSql = conn.createStatement();
execSql.setQueryTimeout(QUERY_TIMEOUT);
// return execSql.executeQuery(sql);

    //conn.commit();

    int result = execSql.executeUpdate(sql);
    conn.commit();
    return result;
}

</pre>

<pre>
原来的代码
public int executeUpdate(String sql) throws SQLException{
Statement execSql = null;
execSql = conn.createStatement();
execSql.setQueryTimeout(QUERY_TIMEOUT);
return execSql.executeQuery(sql);//问题在于没有提交,好坑
}
</pre>

推荐阅读更多精彩内容