将数据库列添加到JComboBox

时间:2013-05-20 14:37:36

标签: java sql swing while-loop jcombobox

我一直在寻找答案,但无济于事。当我编译它时,它只返回数据库中我的表的最后一行,而不是我期望的整个列的列表。我相信这个问题来自这里..如果我能列出该栏目中的所有内容,我将非常感谢你的帮助。

String query = "SELECT contact_id, first_name, last_name FROM my_contacts";
ResultSet rs = statement.executeQuery(query);

while (rs.next())
{
    System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getString(3));
    String name = rs.getString(2) + " " + rs.getString(3);
        names = new JComboBox();
        names.addItem(rs.getString("first_name"));
}//end while

2 个答案:

答案 0 :(得分:3)

  

当我编译它时,它只返回我表中的最后一行   数据库,而不是我期望的整个列的列表。我相信   问题出在这里..

while (rs.next())
{
    System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getString(3));
    String name = rs.getString(2) + " " + rs.getString(3);
        names = new JComboBox();
        names.addItem(rs.getString("first_name"));
}
  • 您的代码在JComboBox

  • 内的每个循环中创建了while (rs.next()){的新实例
  • 创建JComboBox作为本地变量,然后只需将Items中的while-loop添加到已存在且已初具化的实例

  • 最好的方法是使用DeafultComboBoxModel add / remove / modify JComboBox

答案 1 :(得分:0)

使用此代码完成所有操作。

        try { 
             Class.forName("com.mysql.jdbc.Driver");

             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/recall", "username", "password");

             Statement statement = connection.createStatement();
             String query = "SELECT * FROM names";
             ResultSet rs = statement.executeQuery(query);

             while (rs.next())
             {      
                String name = rs.getString("name");         
                names.addItem(rs.getString("name"));
             }//end while
             connection.close();
             } catch (Exception e) {
                  e.printStackTrace();
             }