问题
问题描述: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>