From 8e2250f874f7625ba1b7cee92e9142549f177849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=86=99=E6=9C=9D?= <13694051+wangxizhao123@user.noreply.gitee.com> Date: Tue, 23 Apr 2024 22:28:19 +0800 Subject: [PATCH] =?UTF-8?q?type(AccreditServiceImpl,DataAccessServiceImpl)?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=A1=A8=E5=8D=95=E6=9F=A5=E8=AF=A2=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E8=A1=A8=E7=BB=93=E6=9E=84=E5=92=8C=E8=A1=A8?= =?UTF-8?q?=E6=A1=86=E6=9E=B6=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E4=BC=9A=E5=8A=A0=E5=85=A5=E7=9B=B8=E5=BA=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E8=A1=A8=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=92=8C=E8=A1=A8=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/AccreditController.java | 49 +++++++- .../com/muyu/system/domain/ListStructure.java | 48 +++++++ .../com/muyu/system/domain/TableList.java | 25 ++++ .../muyu/system/domain/dictionaryMajor.java | 15 +++ .../com/muyu/system/domain/vo/TableVo.java | 10 +- .../muyu/system/mapper/AccreditMapper.java | 18 ++- .../muyu/system/service/AccreditService.java | 14 ++- .../service/impl/AccreditServiceImpl.java | 118 ++++++++++++++++-- .../service/impl/DataAccessServiceImpl.java | 3 +- .../mapper/system/AccreditMapper.xml | 43 +++++-- 10 files changed, 310 insertions(+), 33 deletions(-) create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/ListStructure.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/TableList.java create mode 100644 muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/dictionaryMajor.java diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AccreditController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AccreditController.java index a911b21..454d32d 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AccreditController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AccreditController.java @@ -3,6 +3,8 @@ package com.muyu.system.controller; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.system.domain.SysUser; +import com.muyu.system.domain.ListStructure; +import com.muyu.system.domain.TableList; import com.muyu.system.domain.TableName; import com.muyu.system.domain.vo.DeptVO; import com.muyu.system.domain.vo.SysUserVo; @@ -34,8 +36,8 @@ public class AccreditController extends BaseController { * @return */ @PostMapping("tableNameList") - public Result> tableNameList(){ - List list = service.tableNameList(); + public Result> tableNameList(){ + List list = service.tableNameList(); return Result.success(list); } @@ -44,14 +46,19 @@ public class AccreditController extends BaseController { * @return */ @GetMapping("tableNameList2") - public Result> tableNameList2(){ + public Result> tableNameList2() throws SQLException { List list = service.tableNameList2(); return Result.success(list); } + /** + * 获取表结构 + * @return + * @throws SQLException + */ @GetMapping("listSqlJdbc") - public Result listSqlJdbc() throws SQLException { - return service.listSqlJdbc(); + public Result listSqlJdbc(@RequestParam String tableName) throws SQLException { + return service.listSqlJdbc(tableName); } /** @@ -85,4 +92,36 @@ public class AccreditController extends BaseController { return success(list); } + /** + * 获取表结构 + * @return + */ + @PostMapping("/listListstructure") + public Result> listListstructure(){ + List list = service.listListstructure(); + return success(list); + } + + /** + * 根据名称查询表框架 + * @param name + * @return + */ + @PostMapping("selNameTableList/{name}") + public Result selNameTableList(@PathVariable String name){ + TableList tableList = service.selNameTableList(name); + return success(tableList); + } + + /** + * 根据名称获取表结构 + * @param tableName + * @return + */ + @PostMapping("/selNameListStructure/{tableName}") + public Result> selNameListStructure(@PathVariable String tableName){ + List list = service.selNameListStructure(tableName); + return success(list); + } + } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/ListStructure.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/ListStructure.java new file mode 100644 index 0000000..2d263f3 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/ListStructure.java @@ -0,0 +1,48 @@ +package com.muyu.system.domain; + +import lombok.Data; + +@Data +public class ListStructure { + /** + * 数据库名 + */ + private String catalogName; + /** + * 表名 + */ + private String tableName; + /** + * java类型 + */ + private String columnLassName; + /** + * 映射类型 + */ + private String columnTypeName; + /** + * 字段名称 + */ + private String columnName; + + /** + * 长度 + */ + private Integer precisions; + /** + * 小数 + */ + private Integer scale; + /** + * 非空 + */ + private Integer isNull; + /** + * 默认 + */ + private String schemaName; + /** + * 注解 + */ + private String columnComments; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/TableList.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/TableList.java new file mode 100644 index 0000000..058ffa7 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/TableList.java @@ -0,0 +1,25 @@ +package com.muyu.system.domain; + +import lombok.Data; + +@Data +public class TableList { + /** + * 名称 + */ + private String name; + /** + *表 + */ + private String as; + /** + *数据 + */ + private Integer dataTotal; + /** + *类型 + */ + private String type; + + private TableList tableList; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/dictionaryMajor.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/dictionaryMajor.java new file mode 100644 index 0000000..2d6f916 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/dictionaryMajor.java @@ -0,0 +1,15 @@ +package com.muyu.system.domain; + +import lombok.Data; + +@Data +public class dictionaryMajor { + /** + * 名称 + */ + private String dictionaryName; + /** + * 展示 + */ + private Integer dictionaryExpression; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/vo/TableVo.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/vo/TableVo.java index 0986056..4738135 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/vo/TableVo.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/vo/TableVo.java @@ -15,7 +15,7 @@ public class TableVo { /** *表名 */ - private String TableName; + private String tableName; /** *列名 */ @@ -25,7 +25,7 @@ public class TableVo { */ private String ordinalPosition; /** - *列默认 + *默认值 */ private String columnDefault; /** @@ -35,7 +35,7 @@ public class TableVo { /** *类型 */ - private String dateType; + private String dataType; /** *字符最大长度 */ @@ -61,11 +61,11 @@ public class TableVo { */ private String characterSetName; /** - * + *排序规则名 */ private String collationName; /** - *排序规则名 + *映射类型 */ private String columnType; /** diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AccreditMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AccreditMapper.java index 61a73b5..d702c2e 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AccreditMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AccreditMapper.java @@ -1,6 +1,8 @@ package com.muyu.system.mapper; import com.muyu.system.domain.Library; +import com.muyu.system.domain.ListStructure; +import com.muyu.system.domain.TableList; import com.muyu.system.domain.TableName; import com.muyu.system.domain.vo.TableVo; import org.apache.ibatis.annotations.Param; @@ -8,7 +10,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface AccreditMapper { - List tableNameList(); + List tableNameList(); String database(); @@ -21,6 +23,18 @@ public interface AccreditMapper { void indexTableName(@Param("s") String s); - void indexListStructure(@Param("columnClassName") String columnClassName, @Param("columnTypeName") String columnTypeName, @Param("columnName") String columnName, @Param("tableName") String tableName, @Param("catalogName") String catalogName); + void insertListStructure(ListStructure listStructure); + + void inserttableList(@Param("s") String s); + + List listListstructure(); + + TableList selNameTableList(@Param("name") String name); + + List selNameListStructure(@Param("tableName") String tableName); + + int selectOneTableList(@Param("s") String s); + + int selectOneSqlJdbc(@Param("s") String s); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AccreditService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AccreditService.java index 932dee9..8a81b97 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AccreditService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AccreditService.java @@ -2,6 +2,8 @@ package com.muyu.system.service; import com.muyu.common.core.domain.Result; import com.muyu.system.domain.Library; +import com.muyu.system.domain.ListStructure; +import com.muyu.system.domain.TableList; import com.muyu.system.domain.TableName; import com.muyu.system.domain.vo.TableVo; @@ -9,11 +11,17 @@ import java.sql.SQLException; import java.util.List; public interface AccreditService { - List tableNameList(); + List tableNameList(); List selectTableXml(String tableName); - List tableNameList2(); + List tableNameList2() throws SQLException; - Result listSqlJdbc() throws SQLException; + Result listSqlJdbc(String tableName) throws SQLException; + + List listListstructure(); + + TableList selNameTableList(String name); + + List selNameListStructure(String tableName); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AccreditServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AccreditServiceImpl.java index 5a6fefb..6c75823 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AccreditServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AccreditServiceImpl.java @@ -2,6 +2,8 @@ package com.muyu.system.service.impl; import com.muyu.common.core.domain.Result; import com.muyu.system.domain.Library; +import com.muyu.system.domain.ListStructure; +import com.muyu.system.domain.TableList; import com.muyu.system.domain.TableName; import com.muyu.system.domain.vo.TableVo; import com.muyu.system.mapper.AccreditMapper; @@ -10,15 +12,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.sql.*; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Service public class AccreditServiceImpl implements AccreditService { @Autowired private AccreditMapper mapper; @Override - public List tableNameList() { - List list = mapper.tableNameList(); + public List tableNameList() { + List list = mapper.tableNameList(); System.out.println(list); return list; } @@ -32,37 +36,131 @@ public class AccreditServiceImpl implements AccreditService { } @Override - public List tableNameList2() { + public List tableNameList2() throws SQLException { List list = mapper.tableNameList2(); for (String s : list) { - if (mapper.getNameSelTable(s)>1){ + int i = mapper.selectOneTableList(s); + if (i>0){ }else{ - mapper.indexTableName(s); + mapper.inserttableList(s); + } + int i1 = mapper.selectOneSqlJdbc(s); + if (i1>0){ + }else{ + listSqlJdbc(s); } } return list; } @Override - public Result listSqlJdbc() throws SQLException { + public Result listSqlJdbc(String tableName) throws SQLException { PreparedStatement pst = null; Connection conn = null; String database = mapper.database(); conn = DriverManager.getConnection("jdbc:mysql://129.211.23.219:3306/"+ database +"?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8","root","Qq4152637"); try { - pst = conn.prepareCall("select * from admin"); - ResultSetMetaData rsd = pst.executeQuery().getMetaData(); + pst = conn.prepareCall("select * from " + tableName); +// ResultSetMetaData rsd = pst.executeQuery().getMetaData(); + ResultSetMetaData rsd = pst.getMetaData(); + //获取元数据 + DatabaseMetaData metaData = conn.getMetaData(); + Map columnComments =getColumnComments(metaData,tableName); for (int i = 0; i < rsd.getColumnCount(); i++) { System.out.println("java类型"+rsd.getColumnClassName(i+1)); System.out.println("数据库类型"+rsd.getColumnTypeName(i+1)); System.out.println("字段名称"+rsd.getColumnName(i+1)); System.out.println("表名"+rsd.getTableName(i+1)); System.out.println("数据库名"+rsd.getCatalogName(i+1)); - mapper.indexListStructure(rsd.getColumnClassName(i+1),rsd.getColumnTypeName(i+1),rsd.getColumnName(i+1),rsd.getTableName(i+1),rsd.getCatalogName(i+1)); + System.out.println("模式名"+rsd.getSchemaName(i+1)); + System.out.println("列数"+rsd.getColumnCount()); + System.out.println("列类型"+rsd.getColumnType(i+1)); + System.out.println("列标签"+rsd.getColumnLabel(i+1)); + System.out.println("列显示大小"+rsd.getColumnDisplaySize(i+1)); + System.out.println("精度"+rsd.getPrecision(i+1)); + System.out.println("规模"+rsd.getScale(i+1)); + System.out.println("自增"+rsd.isAutoIncrement(i+1)); + System.out.println("是否为空"+rsd.isNullable(i+1)); + System.out.println("区分大小写"+rsd.isCaseSensitive(i+1)); + System.out.println("是否是货币"+rsd.isCurrency(i+1)); + System.out.println("可搜索"+rsd.isSearchable(i+1)); + System.out.println("签署"+rsd.isSigned(i+1)); + System.out.println("绝对可以写"+rsd.isDefinitelyWritable(i+1)); + System.out.println("只读"+rsd.isReadOnly(i+1)); + System.out.println("是可写的"+rsd.isWritable(i+1)); + System.out.println("注解"+columnComments.get(rsd.getColumnName(i+1))); + ListStructure listStructure = new ListStructure(); + //获取数据库名 + listStructure.setCatalogName(rsd.getCatalogName(i+1)); + //获取表名 + listStructure.setTableName(rsd.getTableName(i+1)); + //获取java类型 + listStructure.setColumnLassName(rsd.getColumnClassName(i+1)); + //获取映射类型 + listStructure.setColumnTypeName(rsd.getColumnTypeName(i+1)); + //获取字段名称 + listStructure.setColumnName(rsd.getColumnName(i+1)); + //获取长度 + listStructure.setPrecisions(rsd.getPrecision(i+1)); + //获取小数 + listStructure.setScale(rsd.getScale(i+1)); + //获取非空 + listStructure.setIsNull(rsd.isNullable(i+1)); + //获取默认 + listStructure.setSchemaName(rsd.getSchemaName(i+1)); + //获取注解 + listStructure.setColumnComments(columnComments.get(rsd.getColumnName(i+1))); + mapper.insertListStructure(listStructure); } } catch (SQLException e) { throw new RuntimeException(e); } - return Result.success(""); + return Result.success("OK"); } + + @Override + public List listListstructure() { + return mapper.listListstructure(); + } + + @Override + public TableList selNameTableList(String name) { + return mapper.selNameTableList(name); + } + + @Override + public List selNameListStructure(String tableName) { + return mapper.selNameListStructure(tableName); + } + + //获取字段注解 + private Map getColumnComments(DatabaseMetaData metaData,String typeName){ + Map columnComents = new HashMap<>(); + try (ResultSet colums = metaData.getColumns(null,null,typeName,null)){ + while (colums.next()){ + String columsName = colums.getString("COLUMN_NAME"); + String columsComment = colums.getString("REMARKS"); + columnComents.put(columsName,columsComment); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + return columnComents; + } + + //获取字段默认值 + private Map getDefault(DatabaseMetaData metaData,String defaultName){ + Map defaults = new HashMap<>(); + try (ResultSet colums = metaData.getColumns(null,null,defaultName,null)){ + while (colums.next()){ + String columsName = colums.getString("COLUMN_NAME"); + String defaultComment = colums.getString("COLUMN_DEFAULT"); + defaults.put(columsName,defaultComment); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + return defaults; + } + } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/DataAccessServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/DataAccessServiceImpl.java index 8a019c3..cdc2d13 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/DataAccessServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/DataAccessServiceImpl.java @@ -65,9 +65,10 @@ public class DataAccessServiceImpl implements IDataAccessService List list = sysDeptMapper.listDeptList(); DataAccess dataAccess1 = dataAccessMapper.oneDataAccess(); for (SysDept sysDept : list) { + //添加中间件 dataAccessMapper.insertMiddle(sysDept.getDeptId(),dataAccess1.getId()); } - accreditService.listSqlJdbc(); + accreditService.tableNameList2(); return i; } diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/AccreditMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/AccreditMapper.xml index 53dcb2d..c9bdbb0 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/AccreditMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/AccreditMapper.xml @@ -7,14 +7,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into table_name (table_name) values (#{s}); - - insert into list_structure (column_lass_ame,column_type_name,column_name,table_name,catalog_name) - values (#{columnClassName},#{columnTypeName},#{columnName},#{tableName},#{catalogName}); + + insert into list_structure (catalog_name,table_name,column_lass_name,column_type_name,column_name,precisions,scale,is_null,schema_name,column_comments) + values (#{catalogName},#{tableName},#{columnLassName},#{columnTypeName},#{columnName},#{precisions},#{scale},#{isNull},#{schemaName},#{columnComments}); + + + insert into tableList (name) + values (#{s}); - + + + + + +