Java 返回查询SELECT语句
我正在尝试从authors表返回所有id。。。但是它不起作用。。。只是把第一个身份证还给我。。。但是如果我删除了报税表并打印出来,这会给我所有的IDJava 返回查询SELECT语句,java,sql,jdbc,Java,Sql,Jdbc,我正在尝试从authors表返回所有id。。。但是它不起作用。。。只是把第一个身份证还给我。。。但是如果我删除了报税表并打印出来,这会给我所有的ID String url = "jdbc:postgresql://localhost/testdb"; String user = "test"; String password = "test*"; try { con = DriverManager.getConnection(url, user, password); pst
String url = "jdbc:postgresql://localhost/testdb";
String user = "test";
String password = "test*";
try {
con = DriverManager.getConnection(url, user, password);
pst = con.prepareStatement("SELECT id FROM authors");
rs = pst.executeQuery();
while (rs.next()) {
return rs.getInt(1);
}
return
终止方法调用,因为它表示这是该方法应该计算的值。只有方法中的第一个return
调用才会执行。因此,如果您计划从查询中获取所有结果,您应该返回所有这些ID的集合,这些ID是您在调用return
之前构造的。默认情况下return
语句返回返回的常量/变量的值,停止方法执行并离开方法。这里解释如下:
要返回执行查询的所有结果,必须将结果存储在列表中,然后返回此列表:
List<Integer> idList = new ArrayList<Integer>();
//accessing to the database and executing the query...
rs = pst.executeQuery();
while (rs.next()) {
//store the ids in the list
idList.add(rs.getInt(1));
}
//close all the resources...
//at the bottom of your method
return idList;
List idList=new ArrayList();
//正在访问数据库并执行查询。。。
rs=pst.executeQuery();
while(rs.next()){
//将ID存储在列表中
idList.add(rs.getInt(1));
}
//关闭所有资源。。。
//在你的方法的底部
返回懒汉;
Return扮演break
的角色在这种情况下,我建议返回ResultSet
并在视图中使用for或迭代器对其进行迭代
while (rs.next()) {
return rs;
}
并且认为:
while (nameOfYourFunction().next()) {
System.Out.println( rs);
}
构建一个列表
,清理资源,并返回列表
比泄漏结果集并让资源保持打开状态要好…@Glenn这取决于他的查询的性质和复杂性,如果查询更大,他将需要创建bean,然后将它们存储在arrayList中,我认为更麻烦的是,最干净的解决方案是在消耗资源后总是关闭它们