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+"%");