Guest User

Untitled

a guest
Jan 14th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. TableView<HashMap<String, String>> tableView;
  2.  
  3. ObservableList<TableColumn<HashMap<String, String>, String>> tvcolumns = FXCollections.observableArrayList();
  4.  
  5. tableColumns.forEach((t) -> {
  6. tvcolumns.add(new TableColumn<>(t));
  7. });
  8.  
  9. for (int i = 0; i < tvcolumns.size(); i++) {
  10. TableColumn<HashMap<String, String>, String> temp = tvcolumns.get(i);
  11. temp.setCellValueFactory(new PropertyValueFactory<>(keySet.get(i)));
  12. }
  13.  
  14. tableView.getItems().clear();
  15. tableView.setItems(tableData);
  16. tableView.getColumns().addAll(tvcolumns);
  17.  
  18. public class MainUiController implements Initializable {
  19.  
  20. @FXML
  21. private AnchorPane rootPane;
  22. @FXML
  23. private VBox vBoxMain;
  24. @FXML
  25. private HBox hBoxTop;
  26. @FXML
  27. private VBox vBoxTopLeft;
  28. @FXML
  29. private ComboBox<String> cbCatalog;
  30. @FXML
  31. private VBox vBoxTopRight;
  32. @FXML
  33. private ComboBox<String> cbTables;
  34. @FXML
  35. private HBox hBoxBottom;
  36. @FXML
  37. private TitledPane titledPaneBottom;
  38. @FXML
  39. private AnchorPane anchorPaneBottom;
  40. @FXML
  41. private TableView<HashMap<String, String>> tableView;
  42.  
  43. DBHelper dbHelper = new DBHelper();
  44.  
  45. /**
  46. * Initializes the controller class.
  47. *
  48. * @param url
  49. * @param rb
  50. */
  51. @Override
  52. public void initialize(URL url, ResourceBundle rb) {
  53. // TODO
  54. ObservableList<String> catalogItems = cbCatalog.getItems();
  55. catalogItems.clear();
  56. catalogItems.addAll(dbHelper.getCatalogs());
  57. titledPaneBottom.setExpanded(false);
  58. }
  59.  
  60. @FXML
  61. private void populateTables(ActionEvent event) {
  62. String dbName = ((ComboBox<String>) event.getSource()).getValue();
  63. System.out.println("catalog value: " + dbName);
  64. dbHelper.useDB(dbName);
  65. ObservableList<String> tables = cbTables.getItems();
  66. tables.clear();
  67. tables.addAll(dbHelper.getTables());
  68. }
  69.  
  70. @FXML
  71. private void descTable(ActionEvent event) {
  72. String tableName = ((ComboBox<String>) event.getSource()).getValue();
  73.  
  74. ObservableList<String> tableColumns = dbHelper.getTableColumns(tableName);
  75. ObservableList<HashMap<String, String>> tableData = dbHelper.getTableData();
  76.  
  77. List<String> keySet = null;
  78. if (!tableData.isEmpty()) {
  79. keySet = new ArrayList<>(tableData.get(0).keySet());
  80. }
  81.  
  82. titledPaneBottom.setText(""" + tableName + "" description:");
  83.  
  84. ObservableList<TableColumn<HashMap<String, String>, String>> tvcolumns = FXCollections.observableArrayList();
  85.  
  86. tableColumns.forEach((t) -> {
  87. tvcolumns.add(new TableColumn<>(t));
  88. });
  89.  
  90. for (int i = 0; i < tvcolumns.size(); i++) {
  91. TableColumn<HashMap<String, String>, String> temp = tvcolumns.get(i);
  92. temp.setCellValueFactory(new PropertyValueFactory<>(keySet.get(i)));
  93. }
  94.  
  95. tableView.getItems().clear();
  96. tableView.setItems(tableData);
  97. tableView.getColumns().addAll(tvcolumns);
  98. }
  99. }
  100.  
  101. class DBHelper {
  102.  
  103. Connection con;
  104. Statement st;
  105. ObservableList<String> tablesList = FXCollections.observableArrayList();
  106. ObservableList<String> columnList = FXCollections.observableArrayList();
  107. HashMap<String, String> tableData;
  108. ObservableList<HashMap<String, String>> tableDataList = FXCollections.observableArrayList();
  109. String dbName, tableName;
  110. ResultSet tableCols;
  111. ResultSetMetaData colsMetaData;
  112.  
  113. public DBHelper() {
  114. try {
  115. con = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "*****", "******");
  116. st = con.createStatement();
  117. } catch (SQLException ex) {
  118. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  119. }
  120. }
  121.  
  122. public ObservableList<String> getCatalogs() {
  123. try {
  124. ObservableList<String> catalogList = FXCollections.observableArrayList();
  125. DatabaseMetaData dbmd = con.getMetaData();
  126. ResultSet catalogs = dbmd.getCatalogs();
  127. while (catalogs.next()) {
  128. catalogList.add(catalogs.getString(1));
  129. }
  130. return catalogList;
  131. } catch (SQLException ex) {
  132. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  133. }
  134. return null;
  135. }
  136.  
  137. public ObservableList<String> getTables() {
  138. try {
  139. ResultSet tables = st.executeQuery("show tables");
  140. tablesList.clear();
  141. while (tables.next()) {
  142. tablesList.add(tables.getString(1));
  143. }
  144. return tablesList;
  145. } catch (SQLException ex) {
  146. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  147. }
  148. return null;
  149. }
  150.  
  151. void useDB(String dbName) {
  152. this.dbName = dbName;
  153. try {
  154. int execute = st.executeUpdate("use " + dbName);
  155. } catch (SQLException ex) {
  156. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  157. }
  158. }
  159.  
  160. public ObservableList<String> getTableColumns(String tableName) {
  161. this.tableName = tableName;
  162. try {
  163. tableCols = st.executeQuery("desc " + tableName);
  164. colsMetaData = tableCols.getMetaData();
  165. columnList.clear();
  166. int count = 1;
  167. while (count <= colsMetaData.getColumnCount()) {
  168. columnList.add(colsMetaData.getColumnName(count));
  169. count++;
  170. }
  171. return columnList;
  172. } catch (SQLException ex) {
  173. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  174. }
  175. return null;
  176. }
  177.  
  178. public ObservableList<HashMap<String, String>> getTableData() {
  179. tableDataList.clear();
  180. if (tableCols != null & colsMetaData != null) {
  181. try {
  182. while (tableCols.next()) {
  183. tableData = new HashMap<>();
  184. int count = 1;
  185. while (count <= colsMetaData.getColumnCount()) {
  186. tableData.put(colsMetaData.getColumnName(count), tableCols.getString(count));
  187. count++;
  188. }
  189. tableDataList.add(tableData);
  190. }
  191. tableCols.close();
  192. tableCols = null;
  193. colsMetaData = null;
  194. return tableDataList;
  195. } catch (SQLException ex) {
  196. Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
  197. }
  198. }
  199. return null;
  200. }
  201.  
  202. }
Add Comment
Please, Sign In to add comment