From ff1bb105dde2e1dd3f0419ddb2f172fb7423dc11 Mon Sep 17 00:00:00 2001
From: wanggeng <450292408@qq.com>
Date: Wed, 11 May 2022 18:28:52 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4database-api=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=EF=BC=8C=E5=A2=9E=E5=8A=A0database=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=EF=BC=8C=E8=B0=83=E6=95=B4=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/controller/DemoController.java | 11 -
.../pom.xml | 2 +-
.../java/ink/wgink/database/aop/JdbcAop.java | 34 ++
.../controller/api/mysql/MysqlController.java | 111 ++++
.../api/mysql/jdbc/MysqlJdbcController.java | 170 ++++++
.../app/api/mysql/MysqlAppController.java | 121 ++++
.../route/mysql/MysqlRouteController.java | 38 ++
.../mysql/jdbc/MysqlJdbcRouteController.java | 28 +
.../wgink/database/dao/mysql/IMysqlDao.java | 121 ++++
.../database/enums/ConnectionTypeEnum.java | 22 +
.../manager/ActiveConnectionManager.java | 69 +++
.../manager/entity/ActiveConnection.java | 47 ++
.../database/pojo/bos/mysql/MysqlBO.java | 114 ++++
.../database/pojo/dtos/mysql/MysqlDTO.java | 99 ++++
.../database/pojo/pos/mysql/MysqlPO.java | 114 ++++
.../pojo/result/SuccessResultSqlList.java | 48 ++
.../database/pojo/vos/mysql/MysqlVO.java | 74 +++
.../wgink/database/pojo/vos/sql/SqlVO.java | 28 +
.../service/connection/IConnection.java | 22 +
.../connection/impl/MySqlConnectionImpl.java | 43 ++
.../database/service/jdbc/IJdbcService.java | 41 ++
.../service/jdbc/impl/JdbcServiceImpl.java | 180 ++++++
.../database/service/mysql/IMysqlService.java | 188 +++++++
.../service/mysql/impl/MysqlServiceImpl.java | 171 ++++++
.../mybatis/mapper/mysql/mysql-mapper.xml | 341 +++++++++++
.../templates/mysql/jdbc/query-layui.html | 505 +++++++++++++++++
.../resources/templates/mysql/jdbc/query.html | 529 ++++++++++++++++++
.../main/resources/templates/mysql/list.html | 301 ++++++++++
.../main/resources/templates/mysql/save.html | 130 +++++
.../resources/templates/mysql/update.html | 147 +++++
pom.xml | 18 +-
31 files changed, 3844 insertions(+), 23 deletions(-)
delete mode 100644 module-database-api/src/main/java/ink/wgink/database/api/controller/DemoController.java
rename {module-database-api => module-database}/pom.xml (94%)
create mode 100644 module-database/src/main/java/ink/wgink/database/aop/JdbcAop.java
create mode 100644 module-database/src/main/java/ink/wgink/database/controller/api/mysql/MysqlController.java
create mode 100644 module-database/src/main/java/ink/wgink/database/controller/api/mysql/jdbc/MysqlJdbcController.java
create mode 100644 module-database/src/main/java/ink/wgink/database/controller/app/api/mysql/MysqlAppController.java
create mode 100644 module-database/src/main/java/ink/wgink/database/controller/route/mysql/MysqlRouteController.java
create mode 100644 module-database/src/main/java/ink/wgink/database/controller/route/mysql/jdbc/MysqlJdbcRouteController.java
create mode 100644 module-database/src/main/java/ink/wgink/database/dao/mysql/IMysqlDao.java
create mode 100644 module-database/src/main/java/ink/wgink/database/enums/ConnectionTypeEnum.java
create mode 100644 module-database/src/main/java/ink/wgink/database/manager/ActiveConnectionManager.java
create mode 100644 module-database/src/main/java/ink/wgink/database/manager/entity/ActiveConnection.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/bos/mysql/MysqlBO.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/dtos/mysql/MysqlDTO.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/pos/mysql/MysqlPO.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/result/SuccessResultSqlList.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/vos/mysql/MysqlVO.java
create mode 100644 module-database/src/main/java/ink/wgink/database/pojo/vos/sql/SqlVO.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/connection/IConnection.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/connection/impl/MySqlConnectionImpl.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/jdbc/IJdbcService.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/jdbc/impl/JdbcServiceImpl.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/mysql/IMysqlService.java
create mode 100644 module-database/src/main/java/ink/wgink/database/service/mysql/impl/MysqlServiceImpl.java
create mode 100644 module-database/src/main/resources/mybatis/mapper/mysql/mysql-mapper.xml
create mode 100644 module-database/src/main/resources/templates/mysql/jdbc/query-layui.html
create mode 100644 module-database/src/main/resources/templates/mysql/jdbc/query.html
create mode 100644 module-database/src/main/resources/templates/mysql/list.html
create mode 100644 module-database/src/main/resources/templates/mysql/save.html
create mode 100644 module-database/src/main/resources/templates/mysql/update.html
diff --git a/module-database-api/src/main/java/ink/wgink/database/api/controller/DemoController.java b/module-database-api/src/main/java/ink/wgink/database/api/controller/DemoController.java
deleted file mode 100644
index 16d462b2..00000000
--- a/module-database-api/src/main/java/ink/wgink/database/api/controller/DemoController.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package ink.wgink.database.api.controller;
-
-/**
- * @ClassName: DemoController
- * @Description:
- * @Author: wanggeng
- * @Date: 2022/1/18 11:08 AM
- * @Version: 1.0
- */
-public class DemoController {
-}
diff --git a/module-database-api/pom.xml b/module-database/pom.xml
similarity index 94%
rename from module-database-api/pom.xml
rename to module-database/pom.xml
index 6de8c347..7be806c3 100644
--- a/module-database-api/pom.xml
+++ b/module-database/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- module-database-api
+ module-database
diff --git a/module-database/src/main/java/ink/wgink/database/aop/JdbcAop.java b/module-database/src/main/java/ink/wgink/database/aop/JdbcAop.java
new file mode 100644
index 00000000..204735bf
--- /dev/null
+++ b/module-database/src/main/java/ink/wgink/database/aop/JdbcAop.java
@@ -0,0 +1,34 @@
+package ink.wgink.database.aop;
+
+import ink.wgink.exceptions.base.SystemException;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+
+import java.sql.SQLException;
+
+/**
+ * @ClassName: JdbcAop
+ * @Description: jdbcAop
+ * @Author: wanggeng
+ * @Date: 2021/10/29 11:10 上午
+ * @Version: 1.0
+ */
+@Aspect
+@Component
+public class JdbcAop {
+
+ @Around("execution(public * ink.wgink.database.service..*.*(..))")
+ public Object apiLogAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
+ try {
+ return proceedingJoinPoint.proceed();
+ } catch (Throwable e) {
+ if (e instanceof SQLException) {
+ throw new SystemException(e.getMessage());
+ }
+ throw e;
+ }
+ }
+
+}
diff --git a/module-database/src/main/java/ink/wgink/database/controller/api/mysql/MysqlController.java b/module-database/src/main/java/ink/wgink/database/controller/api/mysql/MysqlController.java
new file mode 100644
index 00000000..0e201446
--- /dev/null
+++ b/module-database/src/main/java/ink/wgink/database/controller/api/mysql/MysqlController.java
@@ -0,0 +1,111 @@
+package ink.wgink.database.controller.api.mysql;
+
+import ink.wgink.annotation.CheckRequestBodyAnnotation;
+import ink.wgink.common.base.DefaultBaseController;
+import ink.wgink.database.pojo.dtos.mysql.MysqlDTO;
+import ink.wgink.database.pojo.vos.mysql.MysqlVO;
+import ink.wgink.database.service.mysql.IMysqlService;
+import ink.wgink.interfaces.consts.ISystemConstant;
+import ink.wgink.pojo.ListPage;
+import ink.wgink.pojo.result.ErrorResult;
+import ink.wgink.pojo.result.SuccessResult;
+import ink.wgink.pojo.result.SuccessResultData;
+import ink.wgink.pojo.result.SuccessResultList;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName: MysqlController
+ * @Description: mysql连接
+ * @Author: CodeFactory
+ * @Date: 2021-10-26 23:05:32
+ * @Version: 3.0
+ **/
+@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "mysql连接接口")
+@RestController
+@RequestMapping(ISystemConstant.API_PREFIX + "/mysql")
+public class MysqlController extends DefaultBaseController {
+
+ @Autowired
+ private IMysqlService mysqlService;
+
+ @ApiOperation(value = "新增mysql连接", notes = "新增mysql连接接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @PostMapping("save")
+ @CheckRequestBodyAnnotation
+ public SuccessResult save(@RequestBody MysqlVO mysqlVO) {
+ mysqlService.save(mysqlVO);
+ return new SuccessResult();
+ }
+
+ @ApiOperation(value = "删除mysql连接", notes = "删除mysql连接接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @DeleteMapping("remove/{ids}")
+ public SuccessResult remove(@PathVariable("ids") String ids) {
+ mysqlService.remove(Arrays.asList(ids.split("\\_")));
+ return new SuccessResult();
+ }
+
+ @ApiOperation(value = "修改mysql连接", notes = "修改mysql连接接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", value = "mysql连接ID", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @PutMapping("update/{mysqlId}")
+ @CheckRequestBodyAnnotation
+ public SuccessResult update(@PathVariable("mysqlId") String mysqlId, @RequestBody MysqlVO mysqlVO) {
+ mysqlService.update(mysqlId, mysqlVO);
+ return new SuccessResult();
+ }
+
+ @ApiOperation(value = "mysql连接详情", notes = "mysql连接详情接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", value = "mysql连接ID", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("get/{mysqlId}")
+ public MysqlDTO get(@PathVariable("mysqlId") String mysqlId) {
+ return mysqlService.get(mysqlId);
+ }
+
+ @ApiOperation(value = "mysql连接列表", notes = "mysql连接列表接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("list")
+ public List list() {
+ Map params = requestParams();
+ return mysqlService.list(params);
+ }
+
+ @ApiOperation(value = "mysql连接分页列表", notes = "mysql连接分页列表接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
+ @ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
+ @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("listpage")
+ public SuccessResultList> listPage(ListPage page) {
+ Map params = requestParams();
+ page.setParams(params);
+ return mysqlService.listPage(page);
+ }
+
+ @ApiOperation(value = "mysql连接统计", notes = "mysql连接统计接口")
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("count")
+ SuccessResultData count() {
+ Map params = requestParams();
+ return new SuccessResultData<>(mysqlService.count(params));
+ }
+
+}
\ No newline at end of file
diff --git a/module-database/src/main/java/ink/wgink/database/controller/api/mysql/jdbc/MysqlJdbcController.java b/module-database/src/main/java/ink/wgink/database/controller/api/mysql/jdbc/MysqlJdbcController.java
new file mode 100644
index 00000000..c00c8314
--- /dev/null
+++ b/module-database/src/main/java/ink/wgink/database/controller/api/mysql/jdbc/MysqlJdbcController.java
@@ -0,0 +1,170 @@
+package ink.wgink.database.controller.api.mysql.jdbc;
+
+import ink.wgink.annotation.CheckRequestBodyAnnotation;
+import ink.wgink.common.base.DefaultBaseController;
+import ink.wgink.database.pojo.vos.sql.SqlVO;
+import ink.wgink.database.service.jdbc.IJdbcService;
+import ink.wgink.interfaces.consts.ISystemConstant;
+import ink.wgink.pojo.result.ErrorResult;
+import ink.wgink.pojo.result.SuccessResult;
+import ink.wgink.pojo.result.SuccessResultData;
+import ink.wgink.pojo.result.SuccessResultList;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.sql.SQLException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName: MysqlJdbcController
+ * @Description: Mysql JDBC
+ * @Author: wanggeng
+ * @Date: 2021/10/26 11:41 下午
+ * @Version: 1.0
+ */
+@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "mysql jdbc接口")
+@RestController
+@RequestMapping(ISystemConstant.API_PREFIX + "/mysql/jdbc")
+public class MysqlJdbcController extends DefaultBaseController {
+
+ @Autowired
+ private IJdbcService jdbcService;
+
+ @ApiOperation(value = "是否已经连接", notes = "是否已经连接接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("is-connected/{mysqlId}")
+ public SuccessResultData isConnected(@PathVariable("mysqlId") String mysqlId) {
+ Boolean isConnected = jdbcService.isConnected(mysqlId);
+ return new SuccessResultData<>(isConnected);
+ }
+
+ @ApiOperation(value = "打开连接", notes = "打开连接接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("open-connection/{mysqlId}")
+ public SuccessResult openConnection(@PathVariable("mysqlId") String mysqlId) throws SQLException {
+ jdbcService.openConnection(mysqlId);
+ return new SuccessResult();
+ }
+
+ @ApiOperation(value = "关闭连接", notes = "关闭连接接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("close-connection/{mysqlId}")
+ public SuccessResult closeConnection(@PathVariable("mysqlId") String mysqlId) throws SQLException {
+ jdbcService.closeConnection(mysqlId);
+ return new SuccessResult();
+ }
+
+ @ApiOperation(value = "图示列表", notes = "图示列表接口")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "mysqlId", value = "主键", paramType = "path")
+ })
+ @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
+ @GetMapping("list-schemata/{mysqlId}")
+ public List
+
+ com.alibaba.fastjson2
+ fastjson2
+ ${fastjson2.version}
+
@@ -437,16 +443,6 @@
tomcat-embed-core
${tomcat-embed.version}
-
- org.apache.tomcat.embed
- tomcat-embed-el
- ${tomcat-embed.version}
-
-
- org.apache.tomcat.embed
- tomcat-embed-websocket
- ${tomcat-embed.version}
-