从 ResultSet Java 中获取价值 [关闭]

Posted

技术标签:

【中文标题】从 ResultSet Java 中获取价值 [关闭]【英文标题】:Get value from ResultSet Java [closed] 【发布时间】:2015-12-17 01:33:03 【问题描述】:

我想在查询到数据库后从 ResultSet 中获取值,所以我该怎么做。这是我的一些代码

    conn = DBConnection.connect();
    String SQL = "SELECT * from usertable";
    // ResultSet
    ResultSet rs = conn.createStatement().executeQuery(SQL);
    if (rs.next()) 
        System.out.println(rs.getString(1));
    

它打印的是:“1”,而不是我想要得到的值。任何人都可以帮我解决这个问题。这是用户表的示例数据:

Example data

【问题讨论】:

你想看哪一栏? 尝试getting 不同的列。完全有可能“1”确实是第一列中的值。 我想获取所有列并将其返回到 Person 类型,例如:Person person = rs.getSomething().getFirstname(); getString(1) 将为您获取选择查询中第一列的值。如果你得到 1 那么它意味着第一列的第一个值。您可以使用 rs.getString() 方法中的列名获取所需的列值。 我解决了。该列标记为 1 而不是 0,就像我想的那样,使用 getString(1) 它将显示 user_id = 1。使用 getString(2) 它显示:Quang Huy。无论如何,谢谢你:) 【参考方案1】:

您没有提供更多问题的详细信息,但这是一个示例: 您有一个包含此字段的人员类,您可以自己制作 Setter Getter

class Person
    String name;
    int id;

然后在您的 ResultSet 中:认为您的表有两列(“userid”和“firstname”),第一列是“userid”

    PreparedStatement ps = null;
    Connection con = null;
    // LIMIT 1 because you have one Person Object to fill otherwise you must be have an Array of Person
    String SQL = "SELECT * from usertable LIMIT 1";
    try 
        con = DBConnection.getConnection();
        ps = con.prepareStatement(SQL);

        ResultSet rs = ps.executeQuery();
        Person p = null;

        while (rs.next()) 
            p = new Person();
            p.id = rs.getInt(1);
            // or p.id=rs.getInt("userid"); by name of column
            p.name = rs.getString(2);
            // or p.name=rs.getString("firstname"); by name of column
        
        return p;
     catch (
        SQLException ex) 
        Logger.getLogger(YourClassName.class.getName()).log(Level.SEVERE, null, ex);
        return null;
     finally 
        if (con != null) 
            try 
                con.close();
             catch (SQLException ex) 
                Logger.getLogger(YourClassName.class.getName()).log(Level.SEVERE, null, ex);
            
        
        if (ps != null) 
            try 
                ps.close();
             catch (SQLException ex) 
                Logger.getLogger(YourClassName.class.getName()).log(Level.SEVERE, null, ex);
            
        
    

如果您的结果不止一个,您必须将 Person 更改为 Person[] 或“ArrayList”对象

【讨论】:

以上是关于从 ResultSet Java 中获取价值 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从 plpgsql 函数中获取 Java ResultSet 的返回值

按名称从 ResultSet 中获取值

如何从 java.sql.ResultSet 获取列名列表 [重复]

如何从 JAVA 中的 ResultSet 或 ResultSetMetaData 对象中获取数据库表的主键的列名?

JavaScript - 从开关中获取价值[重复]

如何从 JDBC ResultSet 中获取列数?