resultset只返回一行,而数据库有多行java/sql

ejk8hzay  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(395)

我面临的问题是,我的结果集只返回一行值,而有三行值。我找不到问题出在哪里:

public void eventInfo() throws SQLException
    {
     openConnection();
    PreparedStatement ps1=null;

    String query1="select * from events";

    try {
        ps1 = con.prepareStatement(query1);
    } catch (SQLException ex) {
        Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
    }

            EventData e= new EventData();
            e.edata.clear();
            Events obj = new Events();

    ResultSet s=ps1.executeQuery();
    int i=0;

            System.out.println(s);

    if(s.next())
    {
//                        obj.setId(s.getInt("id"));
//          obj.setTitle(s.getString("title"));
//          obj.setDescription(s.getString("description"));
//          
//          obj.setType(s.getString("type"));
//          obj.setOrganization(s.getString("organization"));
 //         obj.setPlace(s.getString("place"));
 //         obj.setTime(s.getString("time"));
 //         obj.setDate(s.getString("date"));
 //         obj.setRepetetion(s.getString("repetetion"));
 //         obj.setParticipants(s.getInt("participants"));
 //         obj.setLimit(s.getInt("elimit"));

                    System.out.println(i);
                    System.out.println(s.getString("title"));
                    i++;

                 //   e.edata.add(obj);

    }

    if(con!=null)
    {
        con.close();
    }

    }

像这样的数据库表在这里输入图像描述
输出类似于在此处输入图像描述
有人能帮我吗?

j0pj023g

j0pj023g1#

你不必惊讶

if(s.next())

不是循环而是条件。如果要连续访问结果集,必须使用循环

while (s.next())
yvfmudvl

yvfmudvl2#

while (s.next()) {...}

…应该为你做。这将遍历所有行。

相关问题