到目前为止,我知道可以使用以下代码从表格中选择第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");
}
我正在尝试执行此代码,但我没有得到任何结果。
任何帮助将不胜感激。
答案 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));
}