From da9146f75f2108c6bba809b8eb098ac1c75a924e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E5=85=89=EF=BC=9A=E5=9F=8E=E4=B8=AD=E5=9F=8E?= <806783409@qq.com> Date: Thu, 17 Jun 2021 23:34:48 +0800 Subject: [PATCH] =?UTF-8?q?sqlserver=E6=95=B0=E6=8D=AE=E5=BA=93=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=92=8C=E5=AF=BC=E5=87=BA=E5=BC=80=E5=8F=91=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/controller/DatabaseDocController.java | 28 +-- .../db/controller/DbDataViewController.java | 13 +- .../db/controller/DbProcedureController.java | 14 +- .../controller/DbTableRelationController.java | 10 +- .../framework/db/mapper/hive/HiveMapper.xml | 14 +- .../mapper/sqlserver/SqlServerBaseMapper.xml | 7 +- .../db/mapper/sqlserver/SqlServerMapper.xml | 2 +- ...ctory.java => DatabaseServiceFactory.java} | 20 +- .../doc/db/service/DbBaseService.java | 26 +-- .../doc/db/service/SqlserverServiceImpl.java | 67 +++++++ .../service/download/BaseDownloadService.java | 51 +++-- .../db/service/download/DownloadService.java | 49 +++++ .../download/SqlserverDownloadService.java | 179 ++++++++++++++++++ .../src/main/resources/doc-db.html | 2 +- .../js/{app.356a0de3.js => app.ae04f4d2.js} | 2 +- 15 files changed, 403 insertions(+), 81 deletions(-) rename zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/{DbBaseFactory.java => DatabaseServiceFactory.java} (60%) create mode 100644 zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/download/DownloadService.java create mode 100644 zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/download/SqlserverDownloadService.java rename zyplayer-doc-db/src/main/resources/js/{app.356a0de3.js => app.ae04f4d2.js} (78%) diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java index 898f16e5..24e2bcb2 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java @@ -25,7 +25,7 @@ import com.zyplayer.doc.db.framework.db.dto.*; import com.zyplayer.doc.db.framework.db.enums.DatabaseProductEnum; import com.zyplayer.doc.db.framework.json.DocDbResponseJson; import com.zyplayer.doc.db.framework.utils.PoiUtil; -import com.zyplayer.doc.db.service.DbBaseFactory; +import com.zyplayer.doc.db.service.DatabaseServiceFactory; import com.zyplayer.doc.db.service.DbBaseService; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -57,7 +57,7 @@ public class DatabaseDocController { @Resource UserAuthService userAuthService; @Resource - DbBaseFactory dbBaseFactory; + DatabaseServiceFactory databaseServiceFactory; @PostMapping(value = "/getDataSourceList") public ResponseJson getDataSourceList() { @@ -101,7 +101,7 @@ public class DatabaseDocController { if (resultObj != null) { return DocDbResponseJson.ok(resultObj); } - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); Map dbResultMap = dbBaseService.getEditorData(sourceId); dbResultMap.put("product", dbBaseService.getDatabaseProduct().name().toLowerCase()); // 缓存10分钟,如果10分钟内库里面增删改了表或字段,则提示不出来 @@ -111,35 +111,35 @@ public class DatabaseDocController { @PostMapping(value = "/getTableDdl") public ResponseJson getTableDdl(Long sourceId, String dbName, String tableName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); TableDdlVo tableDdlVo = dbBaseService.getTableDdl(sourceId, dbName, tableName); return DocDbResponseJson.ok(tableDdlVo); } @PostMapping(value = "/getDatabaseList") public ResponseJson getDatabaseList(Long sourceId) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); List databaseList = dbBaseService.getDatabaseList(sourceId); return DocDbResponseJson.ok(databaseList); } @PostMapping(value = "/getTableStatus") public ResponseJson getTableStatus(Long sourceId, String dbName, String tableName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); TableStatusVo tableStatusVo = dbBaseService.getTableStatus(sourceId, dbName, tableName); return DocDbResponseJson.ok(tableStatusVo); } @PostMapping(value = "/getTableList") public ResponseJson getTableList(Long sourceId, String dbName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); List tableList = dbBaseService.getTableList(sourceId, dbName); return DocDbResponseJson.ok(tableList); } @PostMapping(value = "/getTableColumnList") public ResponseJson getTableColumnList(Long sourceId, String dbName, String tableName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); TableColumnVo tableColumnVo = dbBaseService.getTableColumnList(sourceId, dbName, tableName); return DocDbResponseJson.ok(tableColumnVo); } @@ -149,14 +149,14 @@ public class DatabaseDocController { if (StringUtils.isBlank(searchText)) { return DocDbResponseJson.ok(); } - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); List columnDescDto = dbBaseService.getTableAndColumnBySearch(sourceId, dbName, searchText); return DocDbResponseJson.ok(columnDescDto); } @PostMapping(value = "/getTableDescList") public ResponseJson getTableDescList(Long sourceId, String dbName, String tableName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); List tableDescList = dbBaseService.getTableDescList(sourceId, dbName, tableName); return DocDbResponseJson.ok(tableDescList); } @@ -164,7 +164,7 @@ public class DatabaseDocController { @PostMapping(value = "/updateTableDesc") public ResponseJson updateTableDesc(Long sourceId, String dbName, String tableName, String newDesc) { this.judgeAuth(sourceId, DbAuthType.DESC_EDIT.getName(), "没有修改该表注释的权限"); - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); dbBaseService.updateTableDesc(sourceId, dbName, tableName, newDesc); return DocDbResponseJson.ok(); } @@ -172,7 +172,7 @@ public class DatabaseDocController { @PostMapping(value = "/updateTableColumnDesc") public ResponseJson updateTableColumnDesc(Long sourceId, String dbName, String tableName, String columnName, String newDesc) { this.judgeAuth(sourceId, DbAuthType.DESC_EDIT.getName(), "没有修改该表字段注释的权限"); - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); dbBaseService.updateTableColumnDesc(sourceId, dbName, tableName, columnName, newDesc); return DocDbResponseJson.ok(); } @@ -192,7 +192,7 @@ public class DatabaseDocController { } private DocDbResponseJson exportForTableDdl(HttpServletResponse response, Long sourceId, String dbName, List tableNameList, Integer exportFormat) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); Map ddlSqlMap = new HashMap<>(); for (String tableName : tableNameList) { TableDdlVo tableDdlVo = dbBaseService.getTableDdl(sourceId, dbName, tableName); @@ -210,7 +210,7 @@ public class DatabaseDocController { } private DocDbResponseJson exportForTableDoc(HttpServletResponse response, Long sourceId, String dbName, List tableNameList, Integer exportFormat) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); // 数据组装 List tableList = new LinkedList<>(); Map> columnList = new HashMap<>(); diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataViewController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataViewController.java index 37d3cd67..f3569cd2 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataViewController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataViewController.java @@ -4,7 +4,6 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.util.TypeUtils; @@ -25,7 +24,7 @@ import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteType; import com.zyplayer.doc.db.framework.db.mapper.base.SqlExecutor; import com.zyplayer.doc.db.framework.json.DocDbResponseJson; import com.zyplayer.doc.db.framework.utils.JSONUtil; -import com.zyplayer.doc.db.service.DbBaseFactory; +import com.zyplayer.doc.db.service.DatabaseServiceFactory; import com.zyplayer.doc.db.service.DbBaseService; import com.zyplayer.doc.db.service.download.BaseDownloadService; import org.apache.commons.collections.CollectionUtils; @@ -60,7 +59,7 @@ public class DbDataViewController { @Resource SqlExecutor sqlExecutor; @Resource - DbBaseFactory dbBaseFactory; + DatabaseServiceFactory databaseServiceFactory; @Resource BaseDownloadService baseDownloadService; // 最大允许导出的行数,设置的过大有可能会导致内存溢出,默认10W条 @@ -71,7 +70,7 @@ public class DbDataViewController { public ResponseJson query(DataViewParam param) { // 数据查询 ExecuteType executeType = this.getExecuteType(param.getSourceId()); - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); String queryPageSql = dbBaseService.getQueryPageSql(param); ExecuteResult executeResult = this.query(param.getSourceId(), param.getExecuteId(), executeType, queryPageSql); // 数据组装 @@ -99,7 +98,7 @@ public class DbDataViewController { public ResponseJson download(HttpServletResponse response, DataViewParam param) { param.setExecuteId(RandomUtil.simpleUUID()); ExecuteType executeType = this.getExecuteType(param.getSourceId()); - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); if (this.getDataCount(param, executeType) > downloadMaxRow) { return DocDbResponseJson.error(String.format("导出失败,表:%s 数据行数超过最大导出配置 %s,请联系管理员修改", param.getTableName(), downloadMaxRow)); } @@ -132,7 +131,7 @@ public class DbDataViewController { */ @PostMapping(value = "/downloadMultiple") public ResponseJson downloadMultiple(HttpServletResponse response, DataViewParam param) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); if (StringUtils.isBlank(param.getTableNames())) { return DocDbResponseJson.warn("请选择导出的表"); } @@ -204,7 +203,7 @@ public class DbDataViewController { } private Long getDataCount(DataViewParam param, ExecuteType executeType) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); String queryCountSql = dbBaseService.getQueryCountSql(param); ExecuteResult countResult = this.query(param.getSourceId(), param.getExecuteId(), executeType, queryCountSql); if (CollectionUtils.isNotEmpty(countResult.getResult()) && MapUtils.isNotEmpty(countResult.getResult().get(0))) { diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java index 5faefe8e..d8d736f9 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java @@ -3,13 +3,11 @@ package com.zyplayer.doc.db.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException; import com.zyplayer.doc.core.annotation.AuthMan; import com.zyplayer.doc.core.exception.ConfirmException; import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; -import com.zyplayer.doc.data.repository.manage.entity.DbDatasource; import com.zyplayer.doc.data.repository.manage.entity.DbProcLog; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; import com.zyplayer.doc.data.service.manage.DbProcLogService; @@ -18,7 +16,7 @@ import com.zyplayer.doc.db.framework.consts.DbAuthType; import com.zyplayer.doc.db.framework.db.dto.ProcedureDto; import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteResult; import com.zyplayer.doc.db.framework.json.DocDbResponseJson; -import com.zyplayer.doc.db.service.DbBaseFactory; +import com.zyplayer.doc.db.service.DatabaseServiceFactory; import com.zyplayer.doc.db.service.DbBaseService; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -44,7 +42,7 @@ public class DbProcedureController { private static Logger logger = LoggerFactory.getLogger(DbProcedureController.class); @Resource - DbBaseFactory dbBaseFactory; + DatabaseServiceFactory databaseServiceFactory; @Resource DbProcLogService dbProcLogService; @@ -57,7 +55,7 @@ public class DbProcedureController { @PostMapping(value = "/list") public ResponseJson list(ProcedureListParam procedureParam) { try { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(procedureParam.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(procedureParam.getSourceId()); procedureParam.setOffset((procedureParam.getPageNum() - 1) * procedureParam.getPageSize()); List procedureDtoList = dbBaseService.getProcedureList(procedureParam); DocDbResponseJson responseJson = DocDbResponseJson.ok(procedureDtoList); @@ -82,7 +80,7 @@ public class DbProcedureController { */ @PostMapping(value = "/detail") public ResponseJson detail(Long sourceId, String dbName, String typeName, String procName) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); try { ProcedureDto procedureDto = dbBaseService.getProcedureDetail(sourceId, dbName, typeName, procName); return DocDbResponseJson.ok(procedureDto); @@ -106,7 +104,7 @@ public class DbProcedureController { this.judgeAuth(sourceId, DbAuthType.PROC_EDIT.getName(), "没有修改该库函数的权限"); DbProcLog dbProcLog = this.createDbProcLog(sourceId, dbName, typeName, procName, "删除函数操作"); try { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); dbBaseService.deleteProcedure(sourceId, dbName, typeName, procName); return DocDbResponseJson.ok(); } catch (Exception e) { @@ -133,7 +131,7 @@ public class DbProcedureController { this.judgeAuth(sourceId, DbAuthType.PROC_EDIT.getName(), "没有修改该库函数的权限"); DbProcLog dbProcLog = this.createDbProcLog(sourceId, dbName, typeName, procName, procSql); try { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); ExecuteResult executeResult = dbBaseService.saveProcedure(sourceId, dbName, typeName, procName, procSql); if (StringUtils.isNotBlank(executeResult.getErrMsg())) { dbProcLog.setStatus(2); diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbTableRelationController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbTableRelationController.java index 213614b8..6547f900 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbTableRelationController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbTableRelationController.java @@ -11,7 +11,7 @@ import com.zyplayer.doc.db.controller.vo.TableColumnVo; import com.zyplayer.doc.db.framework.consts.DbAuthType; import com.zyplayer.doc.db.framework.db.dto.TableColumnDescDto; import com.zyplayer.doc.db.framework.json.DocDbResponseJson; -import com.zyplayer.doc.db.service.DbBaseFactory; +import com.zyplayer.doc.db.service.DatabaseServiceFactory; import com.zyplayer.doc.db.service.DbBaseService; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; @@ -36,13 +36,13 @@ public class DbTableRelationController { private static Logger logger = LoggerFactory.getLogger(DbTableRelationController.class); @Resource - DbBaseFactory dbBaseFactory; + DatabaseServiceFactory databaseServiceFactory; @Resource DbTableRelationService dbTableRelationService; @PostMapping(value = "/update") public ResponseJson update(TableRelationParam param) { - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); dbBaseService.judgeAuth(param.getSourceId(), DbAuthType.UPDATE.getName(), "没有该库的执行权限"); dbTableRelationService.update(param); return DocDbResponseJson.ok(); @@ -53,7 +53,7 @@ public class DbTableRelationController { TableRelationVo relationVo = new TableRelationVo(); relationVo.setDbName(param.getDbName()); relationVo.setName(param.getTableName()); - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(param.getSourceId()); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(param.getSourceId()); TableColumnVo tableColumn = dbBaseService.getTableColumnList(param.getSourceId(), param.getDbName(), param.getTableName()); if (CollectionUtils.isNotEmpty(tableColumn.getColumnList())) { Set drillPath = new HashSet<>(); @@ -93,7 +93,7 @@ public class DbTableRelationController { if (CollectionUtils.isEmpty(relationList)) { return resultRelationList; } - DbBaseService dbBaseService = dbBaseFactory.getDbBaseService(sourceId); + DbBaseService dbBaseService = databaseServiceFactory.getDbBaseService(sourceId); for (DbTableRelation tableRelation : relationList) { String endDbName = tableRelation.getStartDbName(); String endTableName = tableRelation.getStartTableName(); diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/hive/HiveMapper.xml b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/hive/HiveMapper.xml index 005047b6..861db14d 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/hive/HiveMapper.xml +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/hive/HiveMapper.xml @@ -1,15 +1,5 @@ - - - - + + diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerBaseMapper.xml b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerBaseMapper.xml index d15e01d4..fac0e959 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerBaseMapper.xml +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerBaseMapper.xml @@ -23,7 +23,7 @@ - WITH PRIMARYINFO( COLUMNNAME ,ISPRAMARY) AS ( SELECT C.NAME,'true' AS COLUMNNAME @@ -46,7 +46,8 @@ SELECT ( SELECT IS_IDENTITY FROM SYS.ALL_COLUMNS WHERE SYS.ALL_COLUMNS.NAME=SYSCOLUMNS.NAME AND OBJECT_ID = OBJECT_ID(#{tableName}) - ) ISIDENTITY,SYSCOLUMNS.NAME NAME,SYSTYPES.NAME TYPE,Iif(SYSCOLUMNS.ISNULLABLE=1,'1','0') NULLABLE,SYSCOLUMNS.LENGTH LENGTH,PRIMARYINFO.ISPRAMARY + ) selfIncrement, SYSCOLUMNS.NAME name,SYSTYPES.NAME type,Iif(SYSCOLUMNS.ISNULLABLE=1,'1','0') nullable, + SYSCOLUMNS.LENGTH length,PRIMARYINFO.ISPRAMARY primaryKey FROM SYSCOLUMNS LEFT JOIN PRIMARYINFO ON PRIMARYINFO.COLUMNNAME=NAME LEFT JOIN SYSTYPES ON SYSCOLUMNS.XUSERTYPE = SYSTYPES.XUSERTYPE diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerMapper.xml b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerMapper.xml index 350a7875..90fc50f3 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerMapper.xml +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/mapper/sqlserver/SqlServerMapper.xml @@ -1,6 +1,6 @@ - +