Java 当实际有许多行时,结果集仅显示1行

Java 当实际有许多行时,结果集仅显示1行,java,swing,Java,Swing,我正在为我的大学做一个项目。我使用resultSet从报纸表中选择所有行,并将每个报纸名称添加到JComboBox中。我添加了许多报纸,但结果集仅选择第一行。 try{ combobox1.removeAllItems(); ResultSet r1= MysqlCon.run("select * from "+pub); while(r1.next()) { combobox1.addItem(r1

我正在为我的大学做一个项目。我使用resultSet从报纸表中选择所有行,并将每个报纸名称添加到JComboBox中。我添加了许多报纸,但结果集仅选择第一行。

    try{
        combobox1.removeAllItems();
        ResultSet r1= MysqlCon.run("select * from "+pub);
        while(r1.next())
        {
            combobox1.addItem(r1.getString("name"));
            System.out.println(r1.getString(2));
        }
        //TODO
    }
    catch(Exception e){}
下面是连接到数据库的类

 import java.sql.*;  
class MysqlCon{  
    static ResultSet rs;
    public static ResultSet run(String query)
    {
        try{  
            Class.forName("com.mysql.jdbc.Driver");  
            Connection con=DriverManager.getConnection(  
                    "jdbc:mysql://localhost:3306/project","gijo","root");  
            Statement stmt=con.createStatement();  
            rs=stmt.executeQuery(query); 

        }catch(Exception e){ System.out.println(e);} 
        return rs;
    }
我使用同一个类向JTable添加值,这没有问题


请帮帮我

从函数返回结果集并丢失
语句
连接
的引用是错误的,完全错误的

GC可能遇到这些对象,并考虑标记它们未被使用,并运行它们的<代码>最终确定方法。因此,连接可能在任意时间点断开


您可以重写API,也可以从Oracle学习
CachedResultSet

从函数返回结果集是错误的,完全错误的,并且丢失了
语句和
连接的引用

GC可能遇到这些对象,并考虑标记它们未被使用,并运行它们的<代码>最终确定方法。因此,连接可能在任意时间点断开


您可以重写API,也可以从Oracle学习
CachedResultSet

永远不要忽略异常。既然您选择了*
,您怎么知道列“2”返回的是
字符串
?千万不要忽略异常。既然您
选择了*
,您怎么知道列“2”返回
字符串
?那么我现在该怎么办?我的项目中有很多类,我不希望在每个类中都创建连接。在我的程序中有一个类似的部分,我使用相同的技术创建了一个JTable,它似乎工作得很好。只有这个组合框部分!那我现在该怎么办?我的项目中有很多类,我不希望在每个类中都创建连接。在我的程序中有一个类似的部分,我使用相同的技术创建了一个JTable,它似乎工作得很好。只有这个组合框部分!