java - JComboBox 未填充数据库 JDBC 信息 - Java

标签 java sqlite swing jdbc jcombobox

我需要用 SQLite 数据库中的元素列表填充 JComboBox。目前,我没有获取数据来填充它,但我想在 JComboBox 内部没有数据可引入的情况下填充它,并使用一个表示没有数据的元素:

私有(private)连接conn; --> 在 Java 文件的开头。

我的想法是,如果没有数据,就用一个元素填充 JComboBox,如果有数据,则再填充数据和一个元素。

这样做的结果,JComboBox没有被填充,什么都没有,并且报错:

database connection closed

我能做什么?谢谢你。

private boolean cargarListasConfiguraciones() {

String sql = "SELECT * FROM "+table_name;

if (conn == null) {
    conn = this.connectDatabase();
}

try (
     Statement stmt  = conn.createStatement();
     ResultSet rs    = stmt.executeQuery(sql)){


    if (rs.first() == false) {
        this.cbConfigsSelector.addItem("<Without data>");
        this.cbConfigsSelector.setSelectedItem("<Without data>");   
        this.cbConfigsSelector.setEnabled(false);    

        return true;
    } else {
        this.cbConfigsSelector.addItem("<No one selected>");
        this.cbConfigsSelector.setSelectedItem("<No one selected>");    

        while (rs.next()) {

            this.cbConfigsSelector.addItem(rs.getString("config_name"));

        }

        return true;
    }

} catch (SQLException e) {
    System.out.println(e.getMessage());
    return false;
}
}

我的ConnectDatabase 函数:

    private Connection connectDatabase() {

    String JDBC_url = "jdbc:sqlite:C:/Users/Multimedia/eclipse-workspace/Automatizador-MQS-Productos/sqls/mqs_providers_configs.sqlite";

    if (conn != null) {
        return conn;
    }

    conn = null;

    try {

        conn = DriverManager.getConnection(JDBC_url);
        System.out.println("Connected");

    } catch (SQLException e) {
        e.printStackTrace();
        System.out.println("Error accesing database");
    } finally {
       try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }

    return conn;
}

最佳答案

我相信你错过了这行代码

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

如果这不能解决问题或者问题已经存在,您能否提供 connectDatabase() 方法?

关于java - JComboBox 未填充数据库 JDBC 信息 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58938894/

相关文章:

java - 将项目插入队列后,BlockingDeque 不会解除阻塞

android - 在单个 ANDROID 数据库名称中创建多个表时出错

Android onItemClick 给出不正确的 id

java - 需要 jTable 在时间延迟后显示 10 行,然后在所有显示后加载新记录

java - JOptionPane 中的文本换行?

java - Apache Camel 文件分割器示例

java - 如何根据元素大小为每行使用不同的列宽动态地将元素添加到 GridLayout?

java - 在if语句中比较AssertNull

ios - 如何将文件从主包复制到文档文件夹

java - 需要帮助更改按钮背景