問題
問題描述:Java寫的一個MySQL幫助類能夠正常連接MySQL數(shù)據(jù)庫膘掰,且能夠查詢MySQL數(shù)據(jù)庫的數(shù)據(jù),封裝了一個更新數(shù)據(jù)的方法,執(zhí)行數(shù)據(jù)更新晌柬,沒有異常,返回Int值郭脂,但是無法更新數(shù)據(jù)庫的數(shù)據(jù)
問題分析:語法沒有錯誤年碘,sql語句也沒有任何錯誤,很奇怪的問題
解決辦法:因為在getConnection()方法中將自動提交設置為了false, conn.setAutoCommit(false);顧需要在執(zhí)行查詢方法中添加提交方法展鸡。
代碼如下:
<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>