Mysql中查询语句中占位符问题

天仲子 2013-11-28 07:26:40
想用占位符实现页面对servlet传参,再对Mysql数据库进行查询,可是一直不知道哪错了
代码
Connection conn = DriverManager.getConnection(url,username,password);
String sql = "select * from tb_book where name=? or author=?";
PreparedStatement ps= conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,author);
ResultSet rs = ps.executeQuery(sql);
出错信息
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 '? or author=?' at line 1
...全文
1751 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2013-11-29
  • 打赏
  • 举报
回复
mysql编码配置的问题。 另外,打印出author是否在传入的时候已经是乱码了 http://blog.csdn.net/millia/article/details/5806774
天仲子 2013-11-28
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
ResultSet rs = ps.executeQuery(sql); 改成 ResultSet rs = ps.executeQuery();
恩恩,改了之后就正确了,但是为什么 ps.setString(1,name); ps.setString(2,author); 的情况下,只能识别数字查询不能识别汉字的查询呢 比如
孟子E章 2013-11-28
  • 打赏
  • 举报
回复 1
ResultSet rs = ps.executeQuery(sql); 改成 ResultSet rs = ps.executeQuery();

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧