JDBC模糊查询参数的注入的注意点

笔者刚开始是这样写sql语句的
String sql="SELECT * FROM bookBasicInfo,bookTypeInfo WHERE
    bookBasicInfo.BelongType=bookTypeInfo.BookTypeID
        AND bookBasicInfo.bookName like %?%";
采用参数注入
ps.setString(1,  bookName);
但是在执行的过程中,java跑出如下异常
java.sql.SQLException: ORA-00911: 无效字符

所以,对于这样的模糊查询的注入与一般的参数注入有很大的不同
于是,笔者改成如下形式注入,就成功运行出结果了。
String sql="SELECT * FROM bookBasicInfo,bookTypeInfo WHERE
    bookBasicInfo.BelongType=bookTypeInfo.BookTypeID
        AND bookBasicInfo.bookName like ?";
ps.setString(1,  "%"+bookName+"%");

posted @ 2016-12-11 11:46  LeanOnMe  阅读(1796)  评论(0编辑  收藏  举报