当我从sql解析和输入数据时,java上的JavaFX tableview包

问题描述 投票:-1回答:1

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

当程序在工作时enter image description here

sql数据库enter image description here

Tableview不会完全从sql表输出数据,尽管没有错误。也就是说,问题是程序只输出部分数据,尽管...

java sql javafx-8
1个回答
0
投票

这里的问题是

© www.soinside.com 2019 - 2024. All rights reserved.