0

请,我正在开发一个应用程序,我需要从数据库中选择一个表,即这些表必须在该选择面板上始终可用。我创建了一个方法来显示数据库上的所有可用表,并且该方法存在于我的构造函数中。现在,只有一张表在需要的地方显示,我尝试将这些表设置为 jTextFieds,但仍然显示其中一张表。请我如何解决这个问题以将所有可用的表格显示到指定的文本字段并从那里开始,我将努力将它们设置为 jCombobox。贝娄是我的片段:

public void combo(){
       try {

               String sql="SHOW TABLES FROM cctdba";
                //SQL for selecting the table cctdba Database  

                 pst = conn.prepareStatement(sql);

               rs=pst.executeQuery(sql);
                while (rs.next()) {
                     jTextField1.setText(rs.getString(1));
                     jTextField2.setText(rs.getString(2));
                    //Displaying the first two tables into the textfield(Unresloved)  

                }

        // TODO add your handling code here:
    } 
    catch(Exception e){

    }
}

请我需要帮助。谢谢

4

4 回答 4

0
SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='cctdba'
于 2013-09-12T12:32:40.313 回答
0

我认为您应该使用列表作为数据模型来加载您拥有的所有可用表。

尝试这个:

 int i = 1;
 List<String> data = new Arraylist<>();
 while (rs.next()) {
     data.add(rs.getString(i));
     i++;
 }
 JList<String> myJList = new JList<String>(data);

然后使用myJList面板中的对象。

于 2013-09-12T12:37:33.707 回答
0

我认为“从 information_schema.tables 中选择 *”对你来说很好

于 2013-09-12T12:29:48.810 回答
0

您的问题是您正在设置和重置文本字段。您要么需要为每个结果添加更多文本字段,要么需要构建连接字符串。

           rs=pst.executeQuery(sql);
           string allNames1;
           string allNames2;
            while (rs.next()) {
                 allNames1 += rs.getString(1) +" ";
                 allNames2 += rs.getString(2) +" ";
            }
            jTextField1.setText(allNames1);
            jTextField2.setText(allNames2);
于 2013-09-12T12:31:31.210 回答