diff --git a/yshop-generator/src/main/java/co/yixiang/gen/rest/GeneratorController.java b/yshop-generator/src/main/java/co/yixiang/gen/rest/GeneratorController.java index 384980be..c0553a3c 100644 --- a/yshop-generator/src/main/java/co/yixiang/gen/rest/GeneratorController.java +++ b/yshop-generator/src/main/java/co/yixiang/gen/rest/GeneratorController.java @@ -52,8 +52,7 @@ public class GeneratorController { public ResponseEntity getTables(@RequestParam(defaultValue = "") String name, @RequestParam(defaultValue = "0")Integer page, @RequestParam(defaultValue = "10")Integer size){ - int[] startEnd = PageUtil.transToStartEnd(page, size); - return new ResponseEntity<>(generatorService.getTables(name,startEnd), HttpStatus.OK); + return new ResponseEntity<>(generatorService.getTables(name, page, size), HttpStatus.OK); } @ApiOperation("查询字段数据") diff --git a/yshop-generator/src/main/java/co/yixiang/gen/service/GeneratorService.java b/yshop-generator/src/main/java/co/yixiang/gen/service/GeneratorService.java index dbecb87c..dd98b0d5 100644 --- a/yshop-generator/src/main/java/co/yixiang/gen/service/GeneratorService.java +++ b/yshop-generator/src/main/java/co/yixiang/gen/service/GeneratorService.java @@ -5,6 +5,7 @@ */ package co.yixiang.gen.service; +import co.yixiang.common.web.vo.Paging; import co.yixiang.gen.domain.ColumnConfig; import co.yixiang.gen.domain.GenConfig; import org.springframework.http.ResponseEntity; @@ -22,10 +23,11 @@ public interface GeneratorService { /** * 查询数据库元数据 * @param name 表名 - * @param startEnd 分页参数 + * @param page 分页页码 + * @param size 分页大小 * @return / */ - Object getTables(String name, int[] startEnd); + Object getTables(String name, Integer page, Integer size); /** * 得到数据表的元数据 @@ -84,4 +86,6 @@ public interface GeneratorService { * @return / */ List query(String table); + + } diff --git a/yshop-generator/src/main/java/co/yixiang/gen/service/impl/GeneratorServiceImpl.java b/yshop-generator/src/main/java/co/yixiang/gen/service/impl/GeneratorServiceImpl.java index 93013c0c..b9da382c 100644 --- a/yshop-generator/src/main/java/co/yixiang/gen/service/impl/GeneratorServiceImpl.java +++ b/yshop-generator/src/main/java/co/yixiang/gen/service/impl/GeneratorServiceImpl.java @@ -20,6 +20,8 @@ import co.yixiang.utils.FileUtil; import co.yixiang.utils.PageUtil; import co.yixiang.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -30,6 +32,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; +import java.sql.Connection; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -58,26 +61,12 @@ public class GeneratorServiceImpl extends BaseServiceImpl tableInfos = new ArrayList<>(); - for (Object obj : result) { - Object[] arr = (Object[]) obj; - tableInfos.add(new TableInfo(arr[0],arr[1],arr[2],arr[3], ObjectUtil.isNotEmpty(arr[4])? arr[4] : "-")); - } - Query query1 = em.createNativeQuery("SELECT COUNT(*) from information_schema.tables where table_schema = (select database()) " + - "and table_name like ? order by create_time desc"); - query1.setParameter(1, StringUtils.isNotBlank(name) ? ("%" + name + "%") : "%%"); - Object totalElements = query1.getSingleResult(); - return PageUtil.toPage(tableInfos,totalElements); + public Object getTables(String name, Integer page, Integer size) { + IPage pages = null; + Page pageModel = new Page<>(page, size); + pages = baseMapper.selectTables(pageModel,name); + Integer totalElements = 0; + return PageUtil.toPage(pages.getRecords(),pages.getTotal()); } @Override @@ -96,12 +85,27 @@ public class GeneratorServiceImpl extends BaseServiceImpl query(String tableName){ // 使用预编译防止sql注入 - String sql = "select column_name, is_nullable, data_type, column_comment, column_key, extra from information_schema.columns " + +/* String sql = "select column_name, is_nullable, data_type, column_comment, column_key, extra from information_schema.columns " + "where table_name = ? and table_schema = (select database()) order by ordinal_position"; Query query = em.createNativeQuery(sql); query.setParameter(1,tableName); List result = query.getResultList(); List columnInfos = new ArrayList<>(); + for (Object obj : result) { + Object[] arr = (Object[]) obj; + columnInfos.add( + new ColumnConfig( + tableName, + arr[0].toString(), + "NO".equals(arr[1]), + arr[2].toString(), + ObjectUtil.isNotNull(arr[3]) ? arr[3].toString() : null, + ObjectUtil.isNotNull(arr[4]) ? arr[4].toString() : null, + ObjectUtil.isNotNull(arr[5]) ? arr[5].toString() : null) + ); + }*/ + List columnInfos = new ArrayList<>(); + List result = baseMapper.queryByTableName(tableName); for (Object obj : result) { Object[] arr = (Object[]) obj; columnInfos.add( @@ -133,7 +137,7 @@ public class GeneratorServiceImpl extends BaseServiceImpl { + + @Select("select table_name ,create_time , engine, table_collation, table_comment from information_schema.tables " + + "where table_schema = (select database()) and table_name like CONCAT('%',#{name},'%') order by create_time desc") + IPage selectTables(@Param("page") Page page, @Param("name") String name); + + @Select("SELECT COUNT(*) from information_schema.tables where table_schema = (select database()) and table_name like CONCAT('%',#{name},'%') order by create_time desc") + Integer selectTablesCount(@Param("name") String name); + + + @Select("select column_name, is_nullable, data_type, column_comment, column_key, extra from information_schema.columns " + + "where table_name = #{name} and table_schema = (select database()) order by ordinal_position") + List queryByTableName(@Param("name") String name); + }