如何将数据库中的所有可用表设置为文本字段

时间:2013-09-12 12:24:00

标签: java mysql sql

请,我正在开发一个应用程序,我需要从数据库中选择一个表格,即表格必须始终在该选择面板上可用。 我创建了一个方法来显示数据库中的所有可用表,并且该方法存在于我的构造函数中。 现在,只有一个表显示需要的地方,我试图将表设置为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 个答案:

答案 0 :(得分:0)

我认为“select * from information_schema.tables”对您来说没问题

答案 1 :(得分: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);

答案 2 :(得分:0)

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='cctdba'

答案 3 :(得分: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对象。