Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TableView<HashMap<String, String>> tableView;
- ObservableList<TableColumn<HashMap<String, String>, String>> tvcolumns = FXCollections.observableArrayList();
- tableColumns.forEach((t) -> {
- tvcolumns.add(new TableColumn<>(t));
- });
- for (int i = 0; i < tvcolumns.size(); i++) {
- TableColumn<HashMap<String, String>, String> temp = tvcolumns.get(i);
- temp.setCellValueFactory(new PropertyValueFactory<>(keySet.get(i)));
- }
- tableView.getItems().clear();
- tableView.setItems(tableData);
- tableView.getColumns().addAll(tvcolumns);
- public class MainUiController implements Initializable {
- @FXML
- private AnchorPane rootPane;
- @FXML
- private VBox vBoxMain;
- @FXML
- private HBox hBoxTop;
- @FXML
- private VBox vBoxTopLeft;
- @FXML
- private ComboBox<String> cbCatalog;
- @FXML
- private VBox vBoxTopRight;
- @FXML
- private ComboBox<String> cbTables;
- @FXML
- private HBox hBoxBottom;
- @FXML
- private TitledPane titledPaneBottom;
- @FXML
- private AnchorPane anchorPaneBottom;
- @FXML
- private TableView<HashMap<String, String>> tableView;
- DBHelper dbHelper = new DBHelper();
- /**
- * Initializes the controller class.
- *
- * @param url
- * @param rb
- */
- @Override
- public void initialize(URL url, ResourceBundle rb) {
- // TODO
- ObservableList<String> catalogItems = cbCatalog.getItems();
- catalogItems.clear();
- catalogItems.addAll(dbHelper.getCatalogs());
- titledPaneBottom.setExpanded(false);
- }
- @FXML
- private void populateTables(ActionEvent event) {
- String dbName = ((ComboBox<String>) event.getSource()).getValue();
- System.out.println("catalog value: " + dbName);
- dbHelper.useDB(dbName);
- ObservableList<String> tables = cbTables.getItems();
- tables.clear();
- tables.addAll(dbHelper.getTables());
- }
- @FXML
- private void descTable(ActionEvent event) {
- String tableName = ((ComboBox<String>) event.getSource()).getValue();
- ObservableList<String> tableColumns = dbHelper.getTableColumns(tableName);
- ObservableList<HashMap<String, String>> tableData = dbHelper.getTableData();
- List<String> keySet = null;
- if (!tableData.isEmpty()) {
- keySet = new ArrayList<>(tableData.get(0).keySet());
- }
- titledPaneBottom.setText(""" + tableName + "" description:");
- ObservableList<TableColumn<HashMap<String, String>, String>> tvcolumns = FXCollections.observableArrayList();
- tableColumns.forEach((t) -> {
- tvcolumns.add(new TableColumn<>(t));
- });
- for (int i = 0; i < tvcolumns.size(); i++) {
- TableColumn<HashMap<String, String>, String> temp = tvcolumns.get(i);
- temp.setCellValueFactory(new PropertyValueFactory<>(keySet.get(i)));
- }
- tableView.getItems().clear();
- tableView.setItems(tableData);
- tableView.getColumns().addAll(tvcolumns);
- }
- }
- class DBHelper {
- Connection con;
- Statement st;
- ObservableList<String> tablesList = FXCollections.observableArrayList();
- ObservableList<String> columnList = FXCollections.observableArrayList();
- HashMap<String, String> tableData;
- ObservableList<HashMap<String, String>> tableDataList = FXCollections.observableArrayList();
- String dbName, tableName;
- ResultSet tableCols;
- ResultSetMetaData colsMetaData;
- public DBHelper() {
- try {
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "*****", "******");
- st = con.createStatement();
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- public ObservableList<String> getCatalogs() {
- try {
- ObservableList<String> catalogList = FXCollections.observableArrayList();
- DatabaseMetaData dbmd = con.getMetaData();
- ResultSet catalogs = dbmd.getCatalogs();
- while (catalogs.next()) {
- catalogList.add(catalogs.getString(1));
- }
- return catalogList;
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- return null;
- }
- public ObservableList<String> getTables() {
- try {
- ResultSet tables = st.executeQuery("show tables");
- tablesList.clear();
- while (tables.next()) {
- tablesList.add(tables.getString(1));
- }
- return tablesList;
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- return null;
- }
- void useDB(String dbName) {
- this.dbName = dbName;
- try {
- int execute = st.executeUpdate("use " + dbName);
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- public ObservableList<String> getTableColumns(String tableName) {
- this.tableName = tableName;
- try {
- tableCols = st.executeQuery("desc " + tableName);
- colsMetaData = tableCols.getMetaData();
- columnList.clear();
- int count = 1;
- while (count <= colsMetaData.getColumnCount()) {
- columnList.add(colsMetaData.getColumnName(count));
- count++;
- }
- return columnList;
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- return null;
- }
- public ObservableList<HashMap<String, String>> getTableData() {
- tableDataList.clear();
- if (tableCols != null & colsMetaData != null) {
- try {
- while (tableCols.next()) {
- tableData = new HashMap<>();
- int count = 1;
- while (count <= colsMetaData.getColumnCount()) {
- tableData.put(colsMetaData.getColumnName(count), tableCols.getString(count));
- count++;
- }
- tableDataList.add(tableData);
- }
- tableCols.close();
- tableCols = null;
- colsMetaData = null;
- return tableDataList;
- } catch (SQLException ex) {
- Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment