java - 当我从 sql 解析和输入数据时,Java 上的 JavaFX tableview 包
问题描述
Tableview并没有完全从sql表中输出数据,虽然没有错误。也就是说,问题是程序只输出了部分数据,虽然工作表本身有一些
SQL查询类(sqlworker)
public List<String> gettableManagmet() throws SQLException {
resSet = statmt.executeQuery("PRAGMA TABLE_INFO('Users');");
List<String> ls = new ArrayList<>();
while (resSet.next()) {
ls.add(resSet.getString("name"));
}
System.out.println(ls);
return ls;
}
public ObservableList<Users> getdatausermanagment() throws SQLException {
ObservableList<Users> res = FXCollections.observableArrayList();
resSet = statmt.executeQuery("SELECT * FROM Users");
while (resSet.next()) {
String id = String.valueOf(resSet.getInt("id"));
String Login = resSet.getString("Login");
String Pass = resSet.getString("Pass");
String Otel = resSet.getString("Otel");
String isManager = String.valueOf(resSet.getInt("isManager"));
String isAdmin = String.valueOf(resSet.getInt("isAdmin"));
String isBlocked = String.valueOf(resSet.getInt("isBlocked"));
String CauseBlocking = resSet.getString("CauseBlocking");
System.out.println(id+ Login+Pass+Otel+isManager+isAdmin+isAdmin+CauseBlocking);
res.add(new Users(id,Login,Pass,Otel,isManager,isAdmin,isBlocked,CauseBlocking));
}
for(Users s : res){
System.out.println(s);
}
return res;
}
public void adddata(TableView table) throws SQLException {
ObservableList<Users> res = FXCollections.observableArrayList();
resSet = statmt.executeQuery("SELECT * FROM Users");
while (resSet.next()) {
String id = String.valueOf(resSet.getInt("id"));
String Login = resSet.getString("Login");
String Pass = resSet.getString("Pass");
String Otel = resSet.getString("Otel");
String isManager = String.valueOf(resSet.getInt("isManager"));
String isAdmin = String.valueOf(resSet.getInt("isAdmin"));
String isBlocked = String.valueOf(resSet.getInt("isBlocked"));
String CauseBlocking = resSet.getString("CauseBlocking");
System.out.println(id+ Login+Pass+Otel+isManager+isAdmin+isAdmin+isBlocked+CauseBlocking);
table.getItems().add(new Users(id,Login,Pass,Otel,isManager,isAdmin,isBlocked,CauseBlocking));
}
}
用户类
private final String id;
private final String login;
private final String pass;
private final String otel;
private SimpleStringProperty isManager;
private final String isAdmin;
private final String isBlocked;
private final String causeBloocking;
public Users(String id, String login, String pass, String otel, String isManager, String isAdmin, String isBlocked, String causeBlocking) {
this.id = id;
this.login = login;
this.pass = pass;
this.otel = otel;
this.isManager = new SimpleStringProperty(isManager);
this.isAdmin = isAdmin;
this.isBlocked = isBlocked;
this.causeBloocking = causeBlocking;
}
public String getId() {
return id;
}
public String getLogin() {
return login;
}
public String getPass() {
return pass;
}
public String getOtel() {
return otel;
}
public String getisManager() {
return isManager.get();
}
public String getisAdmin() {
return isAdmin;
}
public String getisBlocked() {
return isBlocked;
}
public String getCauseBloocking() {
return causeBloocking;
}
我解析数据的类
public TableView table;
@Override
public void initialize(URL location, ResourceBundle resources) {
SQLWorker sqlWorker = new SQLWorker();
table.setEditable(true);
try {
for (String s: sqlWorker.gettableManagmet()) {
TableColumn<Users, String> tb = new TableColumn<>(s);
tb.setCellValueFactory(new PropertyValueFactory<>(s));
tb.setCellFactory(TextFieldTableCell.forTableColumn());
tb.setVisible(true);
table.getColumns().addAll(tb);
System.out.println(tb.getProperties());
}
System.out.println(table.getColumns().size());
sqlWorker.adddata(table);
} catch (SQLException e) {
e.printStackTrace();
}
}
.xml 文件
当工作程序在 此处输入图像描述
sql 数据库在此处输入图像描述
解决方案
这里的问题是
- 您不遵守 3 个 getter 的 Java 命名约定;
PropertyValueFactory
依赖于那些:通过将第一个字母转换为大写来修改传递给构造函数的属性,然后PropertyValueFactory
检查带有前缀的修改名称的方法get
oris
。它例如寻找getIsManager()
或isIsManager()
不寻找getisManager()
。(请注意,顺便说一句,这更容易阅读。) - 您的一个吸气剂(和相应的字段)名称中有一个错字:应该是
getCauseBlocking()
,而不是getCauseBloocking()
推荐阅读
- python - Python one-liner 获取枚举类列表的所有值的组合列表
- python - Dask Dataframes 不能容忍其中的 NA 值吗?获取 ValueError,无法转换非有限值
- asp.net-core - 类型 [某些视图] 与导入的类型 [默认视图] 冲突 (CS0436)
- javascript - 在 TypeScript 中使用 JS React 组件:JSX 元素类型“MyComponent”不是 JSX 元素的构造函数
- dll - Microsoft.CppCommon.targets(171,5):错误 MSB6006:“cmd.exe”退出,代码为 -1073741515
- chapel - 使用块分发遇到未解决的访问错误
- powershell - 用于获取服务描述以及列出它的参数是什么
- cassandra - CQL:在地图中转义单引号
属性 - java - 用户未创建 -JSON 异常:输入在字符 0 处结束
- javascript - React,如何正确处理成功页面?