JDBC 准备好的语句不起作用 [关闭]

Posted

技术标签:

【中文标题】JDBC 准备好的语句不起作用 [关闭]【英文标题】:JDBC Prepared Statements not working [closed] 【发布时间】:2014-04-11 18:28:59 【问题描述】:

以下 jdbc 代码给出错误mysqlSyntaxErrorException: You have an error in your SQL syntax;。帮我找到它。

   String selectqry="select * from raildb"+ "WHERE id=?"; 
   Class.forName("com.mysql.jdbc.Driver");
   Connection con=DriverManager.getConnection(host,uName,uPass);              
   ps1=con.prepareStatement(selectqry);
   ps1.setInt(1,MyModel.idno);        
   ResultSet rs=ps1.executeQuery();

【问题讨论】:

如果你已经阅读了异常中的错误信息,那就很明显了。 根本不明白为什么需要连接 2 个字符串 ... 【参考方案1】:

在查询中添加空格

String selectqry="select * from raildb "+ "WHERE id=?"; 
                                      ^

【讨论】:

【参考方案2】:

tablename 和关键字 where

之间的 sql 查询中添加空格
String selectqry="select * from raildb "+ " WHERE id=?"; 

【讨论】:

以上是关于JDBC 准备好的语句不起作用 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥准备好的语句在java中不起作用?

准备好的语句的 setString 不起作用

带有准备好的语句的 PDO bindParam() 不起作用

准备好的声明不起作用

在 PHP 中为 MATCH AGAINST 准备的语句不起作用

第一个准备好的语句只执行[关闭]