从数据库打印查询

时间:2013-12-12 12:51:08

标签: java hsqldb

我正在尝试访问数据库并打印查询。 我正在尝试访问DEVICE表并打印DEVICE_ID,但到目前为止我都没有成功。

此处是我的代码;

public static void main(String[] args) throws FileNotFoundException {
    try {
        Class.forName("org.hsqldb.jdbc.JDBCDriver");

        Preferences sysRoot = Preferences.systemRoot();
        Preferences prefs = sysRoot.node("com/davranetworks/zebu");
        url = prefs.get("dburl", "jdbc:hsqldb:E:\\eem\\eemdb");

    } catch (Exception e) {
        e.printStackTrace();
    }

    Connection c = getConnection();

    try {
        c.setAutoCommit(true);
        Statement s = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = s.executeQuery("SELECT * FROM eem_db.device");

        ResultSet deviceId = s.executeQuery("select device_id from eem_db.device");
        System.out.println(deviceId);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static Connection getConnection() {
    Connection c = null;
    try {
        c = DriverManager.getConnection(url);
    } catch (SQLException e) {
        System.out.println("Error initialising connection" + e);
    }
    return c;
}

返回的值为org.hsqldb.jdbc.JDBCResultSet@1d3d68df。 我不知道这个值与什么有关,因为我期待3个整数值。 任何人都可以帮我吗?

5 个答案:

答案 0 :(得分:2)

您必须遍历ResultSet中包含的行,并为每行获取所需的列:

ResultSet deviceIdRS = s.executeQuery("select device_id from eem_db.device");
while(deviceIdRS.next()) {
    System.out.println(deviceIdRS.getString("device_id"));
}

您必须使用与列类型对应的ResultSet getXXX方法,例如getInt,getString,getDate ......

答案 1 :(得分:0)

您正在打印ResultSet的对象,它不会为您提供正确的值。 你需要像下面那样迭代循环

while(deviceId.next()) {
    int integerValue = deviceId.getInt(1);
    System.out.println("content" + integerValue)
}
deviceId.close();
s.close();

答案 2 :(得分:0)

ResultSet deviceId实际上是一个对象包含sql的结果行,所以你只能在打印出来时看到内存地址。 你需要这样的东西:

while(deviceId.next()){
     System.out.print(deviceId.getInt(1));         
}

答案 3 :(得分:0)

s.executeQuery("select device_id from eem_db.device");返回一个resultSet,你必须从结果集中找出值。 喜欢

  

int device_id = resultset [“deviceId”];

答案 4 :(得分:0)

 while (deviceId.next()) 
 {
    // Printing results to the console
      System.out.println("device_id- "+ deviceId.getInt("device_id");

 }

使用结果集迭代对象。