【问题标题】:Check the manual that corresponds to your mysql server version for the right syntax to use near '? and password=?'检查与您的 mysql 服务器版本相对应的手册,以了解在 '? 附近使用的正确语法。和密码=?
【发布时间】: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)。

标签: java mysql sql jframe


【解决方案1】:

好吧,我试图在稍后的语句中再次执行查询。从我这边诚实的错误。睡个好觉可以让你的大脑焕然一新

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-05
    • 2015-03-30
    • 2012-06-27
    • 2015-02-12
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多