我用mySQL5.0,根据从页面传来的code进行模糊查询
String sql = "select * from book where bkcode like %?%";
报错如下
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bkcode like %'1'%' at line 1
请高手指点,1是从页面传来的
String sql = "select * from book where bkcode like %?%";
报错如下
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'bkcode like %'1'%' at line 1
请高手指点,1是从页面传来的
解决方案 »
- 请教个关于静态类的问题
- jsp 怎样操作 word
- struts自定义查询分页标签的问题
- svg转pdf问题
- 这个错误怎么回事啊~~
- 请大家总结一下J2EE开发过程中容易犯的错误,以便今后学习实践中避免!
- 究竟整合Apache和Tomcat需要做什么工作?
- Jbuilder7与Weblogic7整合:classpath和temp设置中的空格怎么解决
- SQL Server 2000 Driver for JDBC的问题
- 菜鸟问题:实体ejb只能先插如一条记录,然后才能用他的查询吗?
- 关于struts2中web.xml配置的问题(急)
- 曾经的C#(C/S)程序员改做JAVA(B/S)程序员,我该学哪些东西?
改成like ?,不知道你是使用什么方法,如果是预处理或hibernate操作都是可以通过后来设置参数的
String sql = "select * from book where bkcode like '%?%'";你少了2个单引号!?号部分用直接用int就行!不用特意加‘’
ps = jdbc.getConnection().prepareStatement(sql);
ps.setString(1, bookForm.getBookCode());错误是:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
请各位指点啊
加单引号是什么概念? '%?%' 这就是一个字符串了,它的值是 %?% ,你的查询条件等同是
bkcode = '%?%',SQL语句里没有任何参数,你还给它传参那必然数组越界这种情况的写法是不要在SQL语句里写%,SQL语句还是
String sql = "select * from book where bkcode like ? ";
而在传参数的时候就用setString(1,"%" + code+ "%")