首页 > 解决方案 > 我想按名称搜索产品并在 java 中的 JTextField 中显示名称和售价

问题描述

"SELECT * FROM products WHERE product_name = ?";

这是我收到的错误消息

这是我的代码

String sql = "SELECT * FROM posdb.products WHERE products.product_name = ?";
PreparedStatement ps = myCon.CreateConnection().prepareStatement(sql);

这是我收到的错误消息:

You have an error in your sql statement, check the manual that 
  corresponds to your MariaDB server version for the right 
  syntax to use near '?' at line 1

标签: javasqldatabase

解决方案


当您使用 a 时,PreparedStatement您需要替换每个“?” 在执行实际查询之前使用有效值。

所以代码的基础是:

String sql = "Select * from SomeTable where SomeColumn = ?";

PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, someColumnVariable);

ResultSet rs = stmt.executeQuery();

推荐阅读