[英]Problem with Update query in Mysql with JDBC
String query = "update user SET bldu = " + bldut + " WHERE userid = " + uid + ";";
使用此查詢代替您的舊查詢可能會對您有所幫助。
在第一個屏幕截圖中,您必須在WHERE
子句之前添加一個空格:
String query = "UPDATE user SET bdlu = " + bldut + "WHERE userid = " + uid + ";";
因此,您的查詢將被解釋為:
UPDATE user SET bdlu = 50WHERE userid = 1001
因此,您將引發語法錯誤。
然后,您將具有以下查詢:
String query = "UPDATE user SET bdlu = " + bldut + " WHERE userid = " + uid + ";";
在您的代碼中嘗試使用此代碼段。
String query = "update user SET bldu = " + bldut + " WHERE userid = " + uid + ";";
Statement = con.prepareStatement(query);
Statement.executeUpdate();
通過查看代碼,您無法將更新查詢的結果存儲在resultSet中。executeUpdate()僅針對更新成功和失敗返回0或1。
好的,伙計們,我已經弄清楚了它正在起作用,這意味着該程序正在通過jdbc從netbeans更新存儲在mysql中的數據,但它不會停止顯示以下錯誤消息:
“無法通過executeQuery()發出數據操作語句”
每次我單擊一個分配了jButton的按鈕。 但我檢查了數據庫,我要更改的值正在更改,但是為什么它顯示此錯誤..?
請在您的Java文件中使用此代碼,並根據您的文件進行更改。 您的問題是,您正在已用於更新的結果集中使用相同的查詢
連接conn = DriverManager.getConnection(“ jdbc:mysql:// localhost:3306 / bdb”,“ root”,“ root”);
嘗試{
String query = "update user SET bldu = " + bldut+ " WHERE userid = " + uid + ";";
// create the java mysql update preparedstatement
Class.forName("com.mysql.jdbc.Driver").newInstance();
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.executeUpdate();
query = "select * from user WHERE userid = " + uid +";";
ResultSet rs = stmt.executeQuery(query);
// STEP 5: Extract data from result set
while (rs.next()) {
// Retrieve by column name
String userid = rs.getString("userid");
String userfname = rs.getString("userfname");
// all your column
// Display values
System.out.print("userid: " + userid);
}
// STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
} finally {
// finally block used to close resources
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}// end finally try
}// end try
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.