com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; che


出現此種錯誤,我暫時遇到了兩次。 
1 我的字段的名稱和數據庫的關鍵字重合。 

 

 

上圖中的desc是默認降序排列的意思。 
2 第二次出現的異常是我在重構代碼階段遇到的一個bug.不過我暫時不能理解,雖然解決了錯誤。 
刪除操作的代碼如下:

 public void deleteProduct(Long id) {
        sql = "DELETE  FROM t_product WHERE id= ?";
        JDBCTemplate.templateDML(sql,id);
 }

或者如下的寫法:都是正確的。

 public void deleteProduct(Long id) {
        sql = "DELETE  FROM t_product WHERE id="+id;
        JDBCTemplate.templateDML(sql);
    }

但是遇上查詢一個結果的時候出現了問題:

public Product getProductById(Long id) {
        sql="SELECT * FROM  t_product  WHERE id=?";
        List<Product> list = JDBCTemplate.templateDQL(sql,id);
        return list.size()==1?list.get(0):null;
    }

修改之后又可以啦;

public Product getProductById(Long id) {
        sql="SELECT * FROM  t_product  WHERE id="+id;
        List<Product> list = JDBCTemplate.templateDQL(sql);
        return list.size()==1?list.get(0):null;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM