我正在为我的大学做一个项目。我正在使用resultSet从报纸表中选择所有行,并且我将每个报纸名称添加到JComboBox。我添加了很多报纸,但resultSet只选择第一行。
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添加值,并且没有问题。
请帮帮我!
答案 0 :(得分:0)
从函数返回ResultSet并丢失Statement
和Connection
的引用是错误的,完全错误。
GC可能遇到这些对象并考虑将其标记为未使用并运行其finalize
方法。结果,连接可能在随机时间点下降。
您可能会重写您的API,或者您可以从{。}}形式学习Oracle。