【发布时间】:2016-02-05 02:49:38
【问题描述】:
我的 java 程序中的代码 sn-p 如下所示
String IQuery = "select customername, address from `customeraccount` where emailaddress=? and password=?";
System.out.println("Connecting to a selected database...");
// STEP 3: Open a connection
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
PreparedStatement stmt = conn.prepareStatement(IQuery);
stmt.setString(1, username);
stmt.setString(2,pwd);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
detailName.setText(rs.getString("customername"));
detailAddress.setText(rs.getString("address"));
}
在上面的 sn-p 中,我能够从 customeraccount 表中获取数据并将其显示在 jframe 界面上。但是当我检查 Eclipse 控制台时,会出现带有标题消息的错误。
【问题讨论】:
-
在您的 SQL 查询中尝试使用单引号将
?括起来。我假设这些列是字符串。 -
@dave 什么?那应该完成什么?
-
您的代码对我来说看起来不错。当您提到 Eclipse 控制台时,您是说您正在尝试使用
?占位符直接执行此查询吗?或者您的意思是您在执行 Java 程序时在控制台中遇到错误? -
@lc 我猜测问题标题建议的 SQL 语法错误是由未用引号括起来的字符串值引起的。如果
setString()解决了这个问题,那我就找错树了。 -
@dave
?是一个占位符。这是一个参数化查询,即使用用户输入处理数据库查询的 Right Way(TM)。