从ResultSet Java获取值

时间:2015-12-17 01:33:03

标签: java sql jdbc resultset

我想在查询数据库后从ResultSet获取值,这样我该怎么办呢。这是我的代码的一部分

shoot

它打印:“1”,而不是我想要的价值。任何人都可以帮我这个。这是usertable的示例数据:

Example data

1 个答案:

答案 0 :(得分:4)

你没有提供问题的更多细节,但这是一个例子:
你有一个这个领域的人类,你可以自己制作Setter Getter

class Person{
    String name;
    int id;
}

然后在你的ResultSet中:
认为你的表有两列(&#34; userid&#34;&#34; firstname&#34;),第一列是&#34; userid&#34; < / p>

    PreparedStatement ps = null;
    Connection con = null;
     String SQL = "SELECT * from usertable LIMIT 1";// LIMIT 1 because you have one Person Object to fill otherwise you must be have an Array of Person
    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 to Person []或&#34; ArrayList&#34;对象