日期:2014-05-16  浏览次数:20928 次

Mysql中查询语句中占位符问题
想用占位符实现页面对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

------解决方案--------------------
ResultSet rs = ps.executeQuery(sql);
改成
ResultSet rs = ps.executeQuery();
------解决方案--------------------
mysql编码配置的问题。
另外,打印出author是否在传入的时候已经是乱码了

http://blog.csdn.net/millia/article/details/5806774