java - JComboBox 未由数据库 JDBC 信息填充 - Java
问题描述
我需要用 SQLite 数据库中的元素列表填充 JComboBox。目前,我没有得到数据来填充它,但我想在 JComboBox 内没有要引入的数据时填充它,并使用一个元素表示没有数据:
私人连接连接;--> Java 文件的开头。
我的想法是,如果没有数据,只需用一个元素填充 JComboBox,如果有数据,则再填充数据和一个元素。
这样做的结果是,JComboBox 没有被填充,什么都没有,并且错误:
数据库连接关闭
我能做些什么?谢谢。
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()?
推荐阅读
- ruby-on-rails - Rails 6.0 最佳实践中的 secret_key_base
- python - 为什么 venv 包含旧版本的 pip (9.0.3)?
- azure - 使用 Azure CLI 为应用程序见解设置数据保留
- c# - DynamoDB 查询包含一个列表参数
- reactjs - 无法使用 @testing-library/user-event 用新值更新文本区域
- xamarin - Xamarin Forms 不能两次安装相同的应用程序(使用不同的包名称)
- excel - 下载一个特定股票的历史股票价格时 VBA 宏出错:MDB
- angular - 使用 Angular 9 Reactive Forms 为一个输入使用多种模式的方法
- google-cloud-platform - 如何在谷歌云 sdk 中使用谷歌云 Gcloud 查询一次查询多个项目
- android - AndroidX Navigation 在 BottomNavigationView 上显示新的 NavigationGraph