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(); } }
fxml文件
当程序在工作时enter image description here
sql数据库enter image description here
Tableview不会完全从sql表输出数据,尽管没有错误。也就是说,问题是程序只输出部分数据,尽管...
这里的问题是