使用Mybatis动态生成MySQL表
一. 首先,在数据库有一张对应的表:
二. controller层代码如下:
@PutMapping("/dynamicallyTable")public AjaxResult dynamicallyTable(@RequestBody Data data){List<Template> list = templateService.DynamicallyTable(data.getSid());//此处是判断表内是否有数据,有则可以继续向下执行,无则return "false"if (list.size()==0){return AjaxResult.success("未设置模板消息,请设置模板信息",false);}Project tablename = (Project) templateService.creatTableName(data.getSid());String name = tablename.getYear() + "_" + tablename.getName() + "_" + tablename.getStages().getName();//这里是应需求动态拼接的表名Map<String, String> mymap = new HashMap<>(); //使用map的key,value进行存值,key:"存的是field" ,value:"存储的是type"for (Template template : list) {String type = template.getType();String field = template.getField();mymap.put(field, type);//遍历template中的值将其分别存储到key,value中}templateService.creatTemplateTable(name, mymap);//此处的name为表名iStageService.updateByStageId(data.getSid(), name);return AjaxResult.success("成功生成定稿表");}
三 . Service接口及其实现类:
3.1 Service接口代码如下:
/*** @Param name : 动态生成表的表名* @Param mymap: 表的列名及类型*/public void creatTemplateTable(String name, Map<String, String> mymap);
3.2 Service接口实现类代码如下:
/*** @Param name : 动态生成表的表名* @Param mymap: 表的列名及类型*/
@Overridepublic void creatTemplateTable(String name, Map<String, String> mymap) {templateMapper.creatTemplateTable(name,mymap);}
四, Mapper接口及其Mapper.xml
4.1 Mapper接口:
/*** @Param name : 动态生成表的表名* @Param mymap: 表的列名及类型*/
public void creatTemplateTable(@Param("name") String name,@Param("mymap") Map<String, String> mymap);
4.2 Mapper.xml:
<update id="creatTemplateTable" parameterType="map">create table ${name} (`id` int(11) NOT NULL AUTO_INCREMENT,<foreach collection="mymap" index="key" item="value" separator=",">${key} ${value}(4000)</foreach>,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8</update>
使用Mybatis动态生成MySQL表相关推荐
- 通过表单设计器动态生成数据库表以及动态查询的功能实现
表单设计器动态生成数据库表以及动态查询的功能实现 前言 1. 功能实现 1.1 效果说明 1.2 功能流程图 1.3 具体后端实现 1.4 实现效果 2. 尾声 前言 前两天安排了作为Java小码农的 ...
- 使用Vue动态生成form表单的实例代码
具有数据收集.校验和提交功能的表单生成器,包含复选框.单选框.输入框.下拉选择框等元素以及,省市区三级联动,时间选择,日期选择,颜色选择,文件/图片上传功能,支持事件扩展. 欢迎大家star学习交流: ...
- Vue+Element动态生成新表单并添加验证
Vue+Element动态生成新表单并添加验证 首先,有这样一个需求,表单中默认有表单项,点击新增,会多出一项. 点击之后 官方文档中有写用v-for来实现新增表单,但是那是单表单的新增,现在多表单的 ...
- (Java程序)Excel自动生成mysql表
读取excel生成字段 最近项目中遇到了一个费时间的事,就花了点时间写了一个小程序来做这件事. description:现在在项目的前期设计阶段,需要从excel的数据库表格字段生成数据库,开始是手动 ...
- 动态生成form表单,不在为表单烦恼
form-create 具有动态渲染.数据收集.校验和提交功能的表单生成器,动态生成Form表单.支持双向数据绑定和事件扩展,组件包含有复选框.单选框.输入框.下拉选择框等表单元素以及省市区三级联动, ...
- java实体类生成mysql表_springboot+mybatis通过实体类自动生成数据库表的方法
前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 org.mybatis ...
- c 自动生成mysql表结构_EntityFrameworkCore 根据实体类自动创建数据库
1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1 Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...
- 使用ef core自动生成mysql表和数据编码的问题
mysql默认的编码是不支持中文的,需要改成utf8编码格式. 而我使用的Pomelo.EntityFrameworkCore.MySql组件生成mysql库和表,他是使用默认编码的. 网上大多说修改 ...
- 根据excel列动态创建mysql表_根据数据库字段动态生成excel模版下载,上传模版获取数据存入数据库(poi 反射)...
环境:mysql5.7.28 java8 Spring boot 2.2.4 mybatis-plus3.10 动态:根据需求,用户可以选择对应的字段生成excle模版 下载 poi 反射:poi是e ...
最新文章
- asp.net 2.0中用GRIDVIEW插入新记录
- oracle中创建触发器
- scrcpy投屏_安卓投屏利器——PC一键控制多台手机
- SpringBoot+Vue博客系统---后端接口开发
- 搭建小程序表情包教程
- 在Java中如何从一个多层嵌套循环中直接跳出?
- tensorflow2.0对应python版本_TensorFlow2.1.0最新版本安装详细教程
- Linux系统安装pgp教程,在Linux系统下安装pgpcommandline
- AxureShare太慢?尝试在内网架设Axure共享吧!
- 马知恩周义仓编常微分方程定性与稳定性方法部分习题参考解答
- 23 期-原文 6.30
- AutoCAD Civil 3D中的对象和标签
- 智能水表自动抄表协议cjt188远传协议,支持地址自动分配检查,灵活好用、Mbus通讯测试工具是一款水表等设备的测试工具
- 神经网络(4)---神经网络是如何帮助我们学习复杂的nonlinear hypotheses
- tf.clip_by_global_norm详解
- VMware安装虚拟机详细教程
- 6、英飞凌-AURIX-TC3XX: PWM实验之使用 GTM -ATOM 实现
- 2021年安全员-A证报名考试及安全员-A证考试资料
- H5 p,b,i,em,u,s标签
- 深入浅出计算机组成原理20-面向流水线的指令设计(上):一心多用的现代CPU