diff --git a/src/main/java/com/zhangmeng/tools/controller/CodecToolsController.java b/src/main/java/com/zhangmeng/tools/controller/CodecToolsController.java index 1e54f09..891dbca 100644 --- a/src/main/java/com/zhangmeng/tools/controller/CodecToolsController.java +++ b/src/main/java/com/zhangmeng/tools/controller/CodecToolsController.java @@ -610,4 +610,9 @@ public class CodecToolsController { public void socket_client_nio_menu_item(ActionEvent event) { load_server_tools(7); } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_sql_tools(3); + + } } diff --git a/src/main/java/com/zhangmeng/tools/controller/HomeController.java b/src/main/java/com/zhangmeng/tools/controller/HomeController.java index 42f39fc..3f348d6 100644 --- a/src/main/java/com/zhangmeng/tools/controller/HomeController.java +++ b/src/main/java/com/zhangmeng/tools/controller/HomeController.java @@ -566,4 +566,8 @@ public class HomeController implements Serializable { public void capter_screen_menu_item(ActionEvent event) { load_small_tools(15); } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_sql_tools(3); + } } \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/tools/controller/HttpToolsController.java b/src/main/java/com/zhangmeng/tools/controller/HttpToolsController.java index fa52243..b71015f 100644 --- a/src/main/java/com/zhangmeng/tools/controller/HttpToolsController.java +++ b/src/main/java/com/zhangmeng/tools/controller/HttpToolsController.java @@ -526,4 +526,12 @@ public class HttpToolsController { public void capter_screen_menu_item(ActionEvent event) { load_small_tools(15); } + + public void json_javabean_gen_menu_item(ActionEvent event) { + load_sql_tools(2); + } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_sql_tools(3); + } } diff --git a/src/main/java/com/zhangmeng/tools/controller/PlayerController.java b/src/main/java/com/zhangmeng/tools/controller/PlayerController.java index 9f1a3d7..85b5292 100644 --- a/src/main/java/com/zhangmeng/tools/controller/PlayerController.java +++ b/src/main/java/com/zhangmeng/tools/controller/PlayerController.java @@ -106,12 +106,12 @@ public class PlayerController { @FXML public void md5_menu_item() { - load_encrypt(); + load_encrypt(1); } @FXML public void spring_security_menu_item() { - load_encrypt(); + load_encrypt(2); } @FXML @@ -275,7 +275,7 @@ public class PlayerController { } - public void load_encrypt() { + public void load_encrypt(int index ) { close_current_page_init(); Stage stage = (Stage) splitPane.getScene().getWindow(); AnchorPane fx = null; @@ -286,6 +286,9 @@ public class PlayerController { } Scene scene = new Scene(fx); stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); } @FXML @@ -579,4 +582,60 @@ public class PlayerController { public void maven_jar_install_menu_item(ActionEvent event) { load_small_tools(10); } + + public void jks_file_menu_item(ActionEvent event) { + load_encrypt(3); + } + + public void music_parser_menu_item(ActionEvent event) { + boolean flag = false; + if (music_parser != null){ + flag = true; + } + music_parser(flag); + } + + public void word_ocr_menu_item(ActionEvent event) { + load_small_tools(11); + } + + public void bar_code_menu_item(ActionEvent event) { + load_small_tools(12); + } + + public void pdf_menu_item(ActionEvent event) { + load_small_tools(13); + } + + public void batch_update_file_name_menu_item(ActionEvent event) { + load_small_tools(14); + } + + public void capter_screen_menu_item(ActionEvent event) { + load_small_tools(15); + } + + public void json_javabean_gen_menu_item(ActionEvent event) { + load_sql_tools(2); + } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_sql_tools(3); + } + + public void socket_client_aio_menu_item(ActionEvent event) { + load_server_tools(4); + } + + public void socket_server_aio_menu_item(ActionEvent event) { + load_server_tools(5); + } + + public void socket_server_nio_menu_item(ActionEvent event) { + load_server_tools(6); + } + + public void socket_client_nio_menu_item(ActionEvent event) { + load_server_tools(7); + } } diff --git a/src/main/java/com/zhangmeng/tools/controller/ServerToolsController.java b/src/main/java/com/zhangmeng/tools/controller/ServerToolsController.java index 7f4e38a..2e98f89 100644 --- a/src/main/java/com/zhangmeng/tools/controller/ServerToolsController.java +++ b/src/main/java/com/zhangmeng/tools/controller/ServerToolsController.java @@ -652,4 +652,39 @@ public class ServerToolsController { } socket_client_nio(flag); } + + public void jks_file_menu_item(ActionEvent event) { + load_encrypt(2); + + } + + public void music_parser_menu_item(ActionEvent event) { + load_player(3); + } + + public void word_ocr_menu_item(ActionEvent event) { + load_small_tools(11); + } + + public void bar_code_menu_item(ActionEvent event) { + load_small_tools(12); + } + + public void pdf_menu_item(ActionEvent event) { + load_small_tools(13); + } + + public void batch_update_file_name_menu_item(ActionEvent event) { + load_small_tools(14); + } + + public void capter_screen_menu_item(ActionEvent event) { + load_small_tools(15); + } + + public void json_javabean_gen_menu_item(ActionEvent event) { + } + + public void sql_query_gen_menu_item(ActionEvent event) { + } } diff --git a/src/main/java/com/zhangmeng/tools/controller/SmallToolsController.java b/src/main/java/com/zhangmeng/tools/controller/SmallToolsController.java index 8d4214e..6387832 100644 --- a/src/main/java/com/zhangmeng/tools/controller/SmallToolsController.java +++ b/src/main/java/com/zhangmeng/tools/controller/SmallToolsController.java @@ -978,4 +978,8 @@ public class SmallToolsController { public void socket_client_nio_menu_item(ActionEvent event) { load_server_tools(7); } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_mysql_tools(3); + } } diff --git a/src/main/java/com/zhangmeng/tools/controller/SqlQueryController.java b/src/main/java/com/zhangmeng/tools/controller/SqlQueryController.java new file mode 100644 index 0000000..a6edb80 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/SqlQueryController.java @@ -0,0 +1,191 @@ +package com.zhangmeng.tools.controller; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.sql.visitor.functions.If; +import com.zhangmeng.tools.utils.AlertUtils; +import com.zhangmeng.tools.utils.FxmlUtils; +import javafx.application.Platform; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.*; +import javafx.scene.control.cell.MapValueFactory; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; +import lombok.extern.slf4j.Slf4j; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-05-18 09:57 + */ +@Slf4j +public class SqlQueryController { + + @FXML + public TextField username; + + @FXML + public TextField password; + + @FXML + public Button query; + + @FXML + public TextField ip; + + @FXML + public TextField port; + + @FXML + public TextField database; + + @FXML + public TextArea query_area; + + @FXML + public TableView> result_view; + + private JdbcTemplate jdbcTemplate; + + private final ObservableList> result_list = FXCollections.observableArrayList(); + + private SimpleBooleanProperty is_exchange = new SimpleBooleanProperty(false); + + @FXML + public void initialize() { + + result_view.setItems(result_list); + + ip.setText("127.0.0.1"); + port.setText("3306"); + database.setText("mystyle-blog"); + username.setText("root"); + password.setText("root"); + + //绑定截图快捷键,使用快捷键达到点击按钮的目的 + KeyCombination keyCombination = KeyCombination.valueOf("ctrl+q"); + + // 处理快捷键事件 + Runnable action = this::run_query; + + query.setOnKeyPressed(event -> { + if (keyCombination.match(event)) { + action.run(); + event.consume(); + } + }); + + query.setOnAction(event -> run_query()); + + database.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, String newValue) { + is_exchange.set(true); + } + }); + } + + public void run_query() { + if (query_area.getSelectedText().length() == 0) { + AlertUtils.alert_warning("请选择要执行的sql!"); + return; + } + + String sql = query_area.getSelectedText(); + + if (is_exchange.get()){ + connection(); + } + + if (jdbcTemplate == null) { + connection(); + } + result_list.clear(); + result_view.getColumns().clear(); + + new Thread(() -> { + List> list = jdbcTemplate.queryForList(sql); + Platform.runLater(() -> { + if (list.size() > 0) { + Map map1 = list.get(0); + for (Map.Entry entry : map1.entrySet()) { + String key = entry.getKey(); + + if (key.equals("unique_identification_key")){ + continue; + } + + if (key.equals("now_pos")){//now_pos -> null + continue; + } + + TableColumn, String> column = new TableColumn<>(key); + column.setCellValueFactory(new MapValueFactory(key)); + result_view.getColumns().add(column); + } + + for (Map map : list) {//unique_identification_key -> 07f83e41-6f0b-4801-b4c7-77778b3a6e50-1422840095098011648 + Map map2 = new HashMap<>(); + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue() == null ? "" : entry.getValue().toString(); + map2.put(key, new SimpleStringProperty(value)); + } + result_list.add(map2); + } + } + }); + }).start(); + } + + + public void getJdbcTemplate() { + + if (jdbcTemplate == null) { + jdbcTemplate = new JdbcTemplate(); + + DruidDataSource datasource = new DruidDataSource(); + String url = "jdbc:mysql://" + ip.getText() + ":" + port.getText() + "/" + database.getText() + "?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true"; + String driverClassName = "com.mysql.jdbc.Driver"; + datasource.setUrl(url); + datasource.setUsername(username.getText()); + datasource.setPassword(password.getText()); + datasource.setDriverClassName(driverClassName); + + jdbcTemplate.setDataSource(datasource); + } + } + + public void connection() { + + if (ip.getText().length() == 0) { + AlertUtils.alert_warning("ip不能为空!"); + return; + } + + if (port.getText().length() == 0) { + AlertUtils.alert_warning("端口不能为空!"); + return; + } + + if (database.getText().length() == 0) { + AlertUtils.alert_warning("数据库名不能为空!"); + return; + } + + getJdbcTemplate(); + is_exchange.set(false); + } + +} diff --git a/src/main/java/com/zhangmeng/tools/controller/SqlToolsController.java b/src/main/java/com/zhangmeng/tools/controller/SqlToolsController.java index 2ccfccd..9c59790 100644 --- a/src/main/java/com/zhangmeng/tools/controller/SqlToolsController.java +++ b/src/main/java/com/zhangmeng/tools/controller/SqlToolsController.java @@ -66,6 +66,7 @@ public class SqlToolsController { private AnchorPane mysql_code_gen; private AnchorPane mybatis_plus_gen; private AnchorPane json2JavaBean; + private AnchorPane sql_query; public static final String color_cell = "#f4f4f4"; @@ -219,6 +220,13 @@ public class SqlToolsController { } json2JavaBean(flag); } + + if (newValue.getIndex() == 3) { + if (sql_query != null){ + flag = true; + } + sql_query(flag); + } } }); } @@ -228,6 +236,7 @@ public class SqlToolsController { case MySql_Code_Generate -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5)); case MyBatis_plus_Generate -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5)); case Json_To_JavaBean -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5)); + case Sql_Query -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5)); }; } @@ -337,6 +346,23 @@ public class SqlToolsController { common_method(); } + private void sql_query(boolean flag){ + //默认选择第一个 + listView.getSelectionModel().select(3); + + if (!flag){ + try { + root = FXMLLoader.load(ResourcesUtils.getResource("sql-query")); + } catch (IOException e) { + e.printStackTrace(); + } + sql_query = root; + }else { + root = sql_query; + } + common_method(); + } + private void common_method() { splitPane.getItems().remove(1); splitPane.getItems().add(1, root); @@ -550,4 +576,12 @@ public class SqlToolsController { public void socket_client_nio_menu_item(ActionEvent event) { load_server_tools(7); } + + public void sql_query_gen_menu_item(ActionEvent event) { + boolean flag = false; + if (sql_query != null){ + flag = true; + } + sql_query(flag); + } } diff --git a/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java index 19ec9b9..179e1a5 100644 --- a/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java +++ b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java @@ -196,6 +196,7 @@ public class ResourcesUtils { MySql_Code_Generate("mysql 代码生成", 0), MyBatis_plus_Generate("mybatis-plus 代码生成", 1), Json_To_JavaBean("json转javabean 代码生成", 2), + Sql_Query("sql 查询", 3), ; SqlTools(String title, int index) { diff --git a/src/main/resources/fxml/codec-tools.fxml b/src/main/resources/fxml/codec-tools.fxml index 295f397..2b900bd 100644 --- a/src/main/resources/fxml/codec-tools.fxml +++ b/src/main/resources/fxml/codec-tools.fxml @@ -63,6 +63,7 @@ + diff --git a/src/main/resources/fxml/home.fxml b/src/main/resources/fxml/home.fxml index cdba727..dd35435 100644 --- a/src/main/resources/fxml/home.fxml +++ b/src/main/resources/fxml/home.fxml @@ -65,6 +65,7 @@ + diff --git a/src/main/resources/fxml/http-tools.fxml b/src/main/resources/fxml/http-tools.fxml index fda8570..df8b297 100644 --- a/src/main/resources/fxml/http-tools.fxml +++ b/src/main/resources/fxml/http-tools.fxml @@ -65,6 +65,7 @@ + diff --git a/src/main/resources/fxml/player.fxml b/src/main/resources/fxml/player.fxml index dd5a1be..0417394 100644 --- a/src/main/resources/fxml/player.fxml +++ b/src/main/resources/fxml/player.fxml @@ -15,8 +15,9 @@ - + + + @@ -24,6 +25,7 @@ + @@ -39,6 +41,11 @@ + + + + + @@ -51,10 +58,12 @@ - + + + @@ -72,6 +81,10 @@ + + + + diff --git a/src/main/resources/fxml/server-tools.fxml b/src/main/resources/fxml/server-tools.fxml index 2d41391..13383c0 100644 --- a/src/main/resources/fxml/server-tools.fxml +++ b/src/main/resources/fxml/server-tools.fxml @@ -17,8 +17,9 @@ - + + + @@ -26,6 +27,7 @@ + @@ -41,6 +43,11 @@ + + + + + @@ -53,10 +60,12 @@ - + + + @@ -72,12 +81,12 @@ - + - + diff --git a/src/main/resources/fxml/small-tools.fxml b/src/main/resources/fxml/small-tools.fxml index eb68d82..0713840 100644 --- a/src/main/resources/fxml/small-tools.fxml +++ b/src/main/resources/fxml/small-tools.fxml @@ -63,6 +63,7 @@ + diff --git a/src/main/resources/fxml/sql-query.fxml b/src/main/resources/fxml/sql-query.fxml new file mode 100644 index 0000000..be38574 --- /dev/null +++ b/src/main/resources/fxml/sql-query.fxml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + +