从表的每一行检索每列的每个属性mysql java

时间:2016-04-26 20:57:53

标签: mysql jdbc

到目前为止,我知道可以使用以下代码从表格中选择第n行
SELECT * FROM table ORDER BY column_name LIMIT n-1,1 ;
在下面的代码中,我尝试从中检索每个列的每个属性名为responsable的表的每一行都包含以下列:id,name,surname,mail,password。 id是一个整数,而其他列的类型是字符串

java.sql.Connection connection = null;
int rowCount;
try {connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name","root","");
      Statement stmt = null;
      ResultSet result = null;
      ResultSet rs = null;
      rs = stmt.executeQuery("SELECT COUNT(*) FROM responsable");
      rowCount = rs.getInt(1);
      if(rowCount!=0)
       {
        for(int i=0;i<rowCount;i++)
         {result= stmt.executeQuery("SELECT * FROM responsable ORDER BY id LIMIT"+i+",1");
          System.out.put(result.getInt(1));
          System.out.put(result.getString(2));
          System.out.put(result.getString(3));
          System.out.put(result.getString(4));
          System.out.put(result.getString(5));}
       }
}catch (Exception ex) {
out.println("Unable to connect to database");
}


我正在尝试执行此代码,但我没有得到任何结果。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的stmt变量为空。您需要先创建语句。

Statement stmt = connection.createStatement();

此外,您需要调用next()以从结果集中检索下一行。 E.g。

if (rs.next()) {
    rowCount = rs.getInt(1);
}  

...

if (result.next()) {
    System.out.put(result.getInt(1));
    System.out.put(result.getString(2));
    System.out.put(result.getString(3));
    System.out.put(result.getString(4));
    System.out.put(result.getString(5));
}