java中寫sql語句的小小細節。本站提示廣大學習愛好者:(java中寫sql語句的小小細節)文章只能為提供參考,不一定能成為您想要的結果。以下是java中寫sql語句的小小細節正文
看如下一條sql語句
String sql="SELECT * FROM bookBasicInfo,bookTypeInfo WHERE bookBasicInfo.BelongType=bookTypeInfo.BookTypeID AND bookBasicInfo.bookName like ? AND" + "bookBasicInfo.BelongType=?"; ps.setString(1, "%"+bookName+"%"); ps.setInt(2, typeId);
這是一條依據圖書稱號和圖書類型停止查詢的sql語句,能夠咋一看並沒有什麼缺點,假如將
上述sql語句在java環境中執行會拋出如下異常
java.sql.SQLException: ORA-00933: SQL 命令未正確完畢
這個問題的錯誤緣由,就是一個空格的問題,由於sql過長,用+停止拼接,但是在用+停止拼接的時分是原樣停止拼接,
在“+”那處,會變成
...bookBasicInfo.bookName like ? ANDbookBasicInfo.BelongType=?
這樣的sql在執行的進程中,當然會報錯啦!
處理方式:只需求在最後一個AND前面或許bookBasicInfo.BelongType後面添加“空格”,問題處理了
假如不細細的察看sql語句,這個錯誤是十分難以發現的。
假如在開發進程中呈現這樣的問題,能夠需求消耗我們很多時間