Java 当实际有许多行时,结果集仅显示1行
我正在为我的大学做一个项目。我使用resultSet从报纸表中选择所有行,并将每个报纸名称添加到JComboBox中。我添加了许多报纸,但结果集仅选择第一行。Java 当实际有许多行时,结果集仅显示1行,java,swing,Java,Swing,我正在为我的大学做一个项目。我使用resultSet从报纸表中选择所有行,并将每个报纸名称添加到JComboBox中。我添加了许多报纸,但结果集仅选择第一行。 try{ combobox1.removeAllItems(); ResultSet r1= MysqlCon.run("select * from "+pub); while(r1.next()) { combobox1.addItem(r1
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,它似乎工作得很好。只有这个组合框部分!