zoukankan      html  css  js  c++  java
  • java中写sql语句的小小细节

     来源于:http://www.cnblogs.com/reine98/p/6180472.html

    看如下一条sql语句

    1
    2
    3
    4
    5
    6
    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语句,这个错误是非常难以发现的。
    如果在开发过程中出现这样的问题,可能需要耗费我们很多时间

  • 相关阅读:
    电话续
    邀请
    Detecting versions of IE
    Android命令行
    电话
    性格形容词
    .NET 异常处理
    uva 10161 Ant on a Chessboard
    转载 ACM训练计划
    uva 253 Cube painting
  • 原文地址:https://www.cnblogs.com/ys-wuhan/p/6393973.html
Copyright © 2011-2022 走看看