【问题标题】:JDBC can't pull data rows while using MYSQL query with WHERE statement使用带有 WHERE 语句的 MYSQL 查询时,JDBC 无法提取数据行
【发布时间】:2017-07-06 11:32:35
【问题描述】:

我正在使用这个 Maven 依赖项来执行 Mysql 查询:

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
    </dependency>

这是我的java代码:

Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection con = DriverManager.getConnection("jdbc:mysql://...", "root", "xxxxx");
    Statement st = con.createStatement();
    ResultSet res = st.executeQuery("SELECT * FROM User WHERE userName='username'");
    while (res.next()) {
        String s = res.getString("id");
    }

我可以使用简单的查询来提取数据,例如:

SELECT * FROM USER;

但是

如果我想用 WHERE 语句执行上述查询,ResultSet.Next 总是错误的!

请帮忙。 并提前感谢。

【问题讨论】:

  • 你最好使用PreparedStatement 而不是Statement
  • 你的表是否真的有一个名为username的用户?
  • @mustafacil 谢谢,我会试试的。
  • @TimBiegeleisen 在使用 IDE 执行查询时我得到了正确的数据。
  • @NaelAbdeljawad 你没有回答我的问题。

标签: java mysql database maven jdbc


【解决方案1】:

首先,尝试确保您在条件中写入的字符串区分大小写

你可以使用

statement =con.prepareStatement("SELECT * from User WHERE userName= ?"); statement.setString(1, userName);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    相关资源
    最近更新 更多