[英]Update command with special SQL keywords in JDBC
我正在嘗試更新我的SQL表中的條目,該表在JDBC中具有列名“from”。 以下是我嘗試執行的SQL命令:
sql = "Update email_template set [from]="+"'"+3+"'"+" WHERE id="+idno;
stmt.executeUpdate(sql);
但是它顯示以下錯誤:
您的SQL語法有錯誤; 查看與您的MySQL服務器版本對應的手冊,以便在'[from] ='Akshit'WHERE id = 1'附近使用正確的語法
MySQL轉義列名的方法是使用反引號:
sql = "Update email_template set `from`="+"'"+3+"'"+" WHERE id="+idno;
我建議在Java中處理SQL時使用java.sql.PreparedStatement
。 它可以用於批處理,並確保惡意SQL不會作為SQL代碼的一部分注入。
這是您的代碼在PreparedStatement
外觀:
PreparedStatement stmt = connection.prepareStatement("UPDATE `email_template` SET `from` = ? WHERE id = ?");
stmt.setInt(1, 3);
stmt.setInt(2, idno);
stmt.executeUpdate();
如果這是一次性執行多行的操作,請將stmt.executeUpdate()
替換為stmt.addBatch()
(可能在某些循環中),當您准備執行批量更新時,調用stmt.executeBatch()
。
請注意, executeUpdate()
和executeBatch()
返回受影響的行數; 這是您在提交后可能要驗證的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.