日期:2014-05-17  浏览次数:20598 次

为什么会出现这个问题,麻烦解答一下,谢谢了
本帖最后由 zhouyuanyuan111 于 2012-12-25 20:27:24 编辑
out.println(book+"<br>");

ResultSet rs=stat.executeQuery("select * from Mytable WHERE NAME in('"+book+"','课本') order by TIME desc");

这两条语句,上面那个out.println是为了验证book是不是能够输出一个词而已,可以去掉的,验证了是正确的,但下面那条语句总是报错,是不是不能够这么写呢???麻烦各位高手解答一下,谢谢了


下面是错误提示
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 72 in the jsp file: /aaa2.jsp
book cannot be resolved
69: 
70: 
71: 
72: ResultSet rs=stat.executeQuery("select * from Mytable WHERE NAME in('"+book+"','课本') order by TIME desc");
73: 
74: 
75: 

------解决方案--------------------
我想看out.println(book+"<br>")这行输出的结果,如果是List类型肯定就不对了。


------解决方案--------------------
你的book是什么类型
------解决方案--------------------
没看出问题。。。

先试试
ResultSet rs=stat.executeQuery("select * from Mytable WHERE NAME in('"+"xxxx"+"','课本') order by TIME desc");

或者你尝试把sql语句打印出来试试。。
------解决方案--------------------
如果我没猜错,你的book是一个对象。而在Book类里面,或许你重载了toString方法,使之打印book的name,所以你out的时候,发现正常。但是。在sql语句里面,你的book依然是一个对象。所以,你把book改成。book.getName()//即,book对象中的某个字段的名称。而且这个字段还是String类型的