提交 f27bcf11 authored 作者: zhangmrit's avatar zhangmrit

create table

上级 399af8c2
...@@ -56,6 +56,12 @@ ...@@ -56,6 +56,12 @@
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
</dependency> </dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!-- RuoYi Common Log --> <!-- RuoYi Common Log -->
<dependency> <dependency>
<groupId>com.wangxiaolu.sfa</groupId> <groupId>com.wangxiaolu.sfa</groupId>
......
package com.sfa.gen.controller; package com.sfa.gen.controller;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -16,6 +17,11 @@ import org.springframework.web.bind.annotation.PutMapping; ...@@ -16,6 +17,11 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.SQLUtils;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement;
import com.sfa.common.core.text.Convert; import com.sfa.common.core.text.Convert;
import com.sfa.common.core.web.controller.BaseController; import com.sfa.common.core.web.controller.BaseController;
import com.sfa.common.core.web.domain.AjaxResult; import com.sfa.common.core.web.domain.AjaxResult;
...@@ -23,6 +29,7 @@ import com.sfa.common.core.web.page.TableDataInfo; ...@@ -23,6 +29,7 @@ import com.sfa.common.core.web.page.TableDataInfo;
import com.sfa.common.log.annotation.Log; import com.sfa.common.log.annotation.Log;
import com.sfa.common.log.enums.BusinessType; import com.sfa.common.log.enums.BusinessType;
import com.sfa.common.security.annotation.RequiresPermissions; import com.sfa.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.utils.sql.SqlUtil;
import com.sfa.gen.domain.GenTable; import com.sfa.gen.domain.GenTable;
import com.sfa.gen.domain.GenTableColumn; import com.sfa.gen.domain.GenTableColumn;
import com.sfa.gen.service.IGenTableColumnService; import com.sfa.gen.service.IGenTableColumnService;
...@@ -55,6 +62,43 @@ public class GenController extends BaseController ...@@ -55,6 +62,43 @@ public class GenController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
* 创建表结构(保存)
*/
@PreAuthorize("@ss.hasRole('admin')")
@Log(title = "创建表", businessType = BusinessType.OTHER)
@PostMapping("/createTable")
public AjaxResult createTableSave(String sql)
{
try
{
SqlUtil.filterKeyword(sql);
List<SQLStatement> sqlStatements = SQLUtils.parseStatements(sql, DbType.mysql);
List<String> tableNames = new ArrayList<>();
for (SQLStatement sqlStatement : sqlStatements)
{
if (sqlStatement instanceof MySqlCreateTableStatement)
{
MySqlCreateTableStatement createTableStatement = (MySqlCreateTableStatement) sqlStatement;
if (genTableService.createTable(createTableStatement.toString()))
{
String tableName = createTableStatement.getTableName().replaceAll("`", "");
tableNames.add(tableName);
}
}
}
List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames.toArray(new String[tableNames.size()]));
String operName = SecurityUtils.getUsername();
genTableService.importGenTable(tableList, operName);
return AjaxResult.success();
}
catch (Exception e)
{
logger.error(e.getMessage(), e);
return AjaxResult.error("创建表结构异常");
}
}
/** /**
* 修改代码生成业务 * 修改代码生成业务
*/ */
......
...@@ -84,4 +84,12 @@ public interface GenTableMapper ...@@ -84,4 +84,12 @@ public interface GenTableMapper
* @return 结果 * @return 结果
*/ */
public int deleteGenTableByIds(Long[] ids); public int deleteGenTableByIds(Long[] ids);
/**
* 创建表
*
* @param sql 创建表语句
* @return 结果
*/
public boolean createTable(String sql);
} }
\ No newline at end of file
...@@ -150,6 +150,18 @@ public class GenTableServiceImpl implements IGenTableService ...@@ -150,6 +150,18 @@ public class GenTableServiceImpl implements IGenTableService
genTableColumnMapper.deleteGenTableColumnByIds(tableIds); genTableColumnMapper.deleteGenTableColumnByIds(tableIds);
} }
/**
* 创建表
*
* @param sql 创建表语句
* @return 结果
*/
@Override
public boolean createTable(String sql)
{
return genTableMapper.createTable(sql) == 0;
}
/** /**
* 导入表结构 * 导入表结构
* *
......
...@@ -66,6 +66,14 @@ public interface IGenTableService ...@@ -66,6 +66,14 @@ public interface IGenTableService
*/ */
public void deleteGenTableByIds(Long[] tableIds); public void deleteGenTableByIds(Long[] tableIds);
/**
* 创建表
*
* @param sql 表结构
* @return 结果
*/
public int createTable(String sql);
/** /**
* 导入表结构 * 导入表结构
* *
......
...@@ -171,6 +171,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -171,6 +171,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) )
</insert> </insert>
<update id="createTable">
${sql}
</update>
<update id="updateGenTable" parameterType="com.sfa.gen.domain.GenTable"> <update id="updateGenTable" parameterType="com.sfa.gen.domain.GenTable">
update gen_table update gen_table
<set> <set>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论