java - Java中的MySQL连接问题

标签 java mysql jdbc

<分区>

我尝试从数据库中获取一些数据。连接方法肯定有效,但我在从数据库获取任何数据时遇到问题:

    SQLConnect s = new SQLConnect();
    Connection c = s.getConnection();

    Statement st = c.createStatement();

    ResultSet rs = st.executeQuery("select * from produkty");
    System.out.println(rs.getString(2));

问题出在最后一行(当我评论它时,没有出现错误)。 错误信息:

Connected to database
Exception in thread "main" java.sql.SQLException: Before start of result set
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
    at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
    at antmedic.Main.main(Main.java:85)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

感谢您的帮助

最佳答案

您需要调用ResultSet#next()将结果集光标移动到下一行。通常,当存在多行时,在 while 循环中执行此操作。

while (rs.next()) {
    System.out.println(rs.getString(2));
}

或者当您需要零行或一行时,使用 if 语句。

if (rs.next()) {
    System.out.println(rs.getString(2));
}

另见:

关于java - Java中的MySQL连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588334/

相关文章:

database - 确保使用 JDBC 原子读取数据库表的最佳实践是什么?

java - 使用不同的 jdbc 驱动程序连接到多个数据库

java - 使用 Spring Boot 连接到 MySQL 数据库时遇到问题

java - (Neo4j非托管扩展API)为什么Neo4j中查询速度取决于数据集的大小?

java - 为什么我在无限循环代码中有不同的结果

c# - 为windows窗体应用程序计算mysql数据库中一列的平均值

mysql - 如何为以下条件创建架构?

java - 在 Rss 阅读器中使用 HttpUrlconnection 导致 Android 挂起

java - 您可以使用 Java 反射在运行时定义和调用方法吗?

mysql字符串连接返回0