亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

執行準備語句時出現 java.sql.SQLSyntaxErrorException

執行準備語句時出現 java.sql.SQLSyntaxErrorException

蝴蝶不菲 2022-12-15 10:43:24
我試圖運行preparedStatement ps以檢查數據庫中是否存在數據。然后它將運行更新(如果存在)或插入(如果不存在)。但是,我收到語法錯誤java.sql.SQLSyntaxErrorException:你的 SQL 語法有錯誤;查看與您的 MySQL 服務器版本對應的手冊,了解在第 1 行的“order WHERE date = '2019-05-22'”附近使用的正確語法我無法發現錯誤在哪里。任何人都可以幫忙嗎?PreparedStatement ps,ps1;        ps =con.prepareStatement("Select 1 from order WHERE date = ?");        ps.setString(1, date);        ResultSet rsOrder=ps.executeQuery();          if(rsOrder.next()) {              System.out.println("reOrder:  true");            ps1 = con.prepareStatement("UPDATE order SET result = ?  WHERE date = ?");            ps1.setString(1, json);            ps1.setString(2, date);            int rs=ps1.executeUpdate();        }else {            System.out.println("reOrder:  false");            ps1 = con.prepareStatement("INSERT INTO order (date,result) VALUES (?,?)");            ps1.setString(1, date);            ps1.setString(2, json);            int rs=ps1.executeUpdate();        }
查看完整描述

1 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

order是MySQL中的保留字。所以它不會允許,沒有轉義保留字。


您可以通過在關鍵字周圍添加 ` 來轉義它:


Select 1 from `order` WHERE date = ?


UPDATE `order` SET result = ? WHERE date = ?


INSERT INTO `order` (date, result) VALUES (?, ?)


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號