迫于无奈,项目非要动态创建和删除数据表,实战一番

简介: springboot+mybatis动态创建数据表和删除数据库表

关于动态创建删除数据库表一共包含三个步骤,

  1. 引入依赖
  2. 动态创建
  3. 动态删除

前提自己先创建一个springboot的项目

第一步: 引入相关依赖(操作数据库的三剑客)

  1. pom中mysql三剑客依赖
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.9</version>
</dependency>

第二步:动态建表{自定义表明,字段}

  1. controller
@RequestMapping("/createTable")  //动态创建表
    public void test2(){
        String tableName = "t2";      //mybatis中#() 占位符,对应的变量会自动加上引号   $()  拼接符,对应的变量不会自动加上引号
        String name = "name";     //表中字段名字
        testService.test12(tableName,name);//创建表
        return;
    }
  1. service
void test12(String tableName,String name);
  1. serviceimpl
@Override
    public void test12(String tableName,String name) {
        testMapper.test2(tableName,name);
        return;
    }
  1. mapper
void test2(@Param("tableName") String tableName,@Param("name") String name);
  1. mapper.xml
<!--这个注意是用${} 因为$这个符号是拼接的意思,而#{}是占位符,会自动把变量的值两边加上引号-->
<update id="test2" parameterType="java.lang.String">
    CREATE TABLE ${tableName}(
        id int NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        ${name} varchar(10) NOT null
    )
</update>

第三步:动态删除数据表

  1. controller
@RequestMapping("/deleteTable")  //动态删除表
    public void deletetable(){
        String tableName = "t2";
        testService.test3(tableName);
        return;
    }
  1. service
void test3(String tableName);
  1. serviceimpl
@Override
    public void test3(String tableName) {
        testMapper.test3(tableName);
    }
  1. mapper
void test3(@Param("tableName") String tableName);
  1. mapper.xml
<update id="test3" parameterType="java.lang.String">
    DROP TABLE IF EXISTS ${tableName}
</update>

公众号:知识浅谈

到此就结束了,如果对您有帮助,请君三连哦。

相关文章
|
8月前
|
小程序 数据库
零基础开发小程序第六课-删除数据
零基础开发小程序第六课-删除数据
分页列表数据不出来,初始化页面数据不出来的原因,Create中传一个参数1,解决bug的方法,学习敲代码的时候仔细与原项目比对,从上比到下
分页列表数据不出来,初始化页面数据不出来的原因,Create中传一个参数1,解决bug的方法,学习敲代码的时候仔细与原项目比对,从上比到下
|
6月前
|
关系型数据库 MySQL 数据库
mysql,归零,无法自动排序,删除id,表单的数据没有从零开始出现怎样解决?删除数据仍然从删除的地方该怎样解决?表单的数据没有从2开始,而是从之前的删除的序号开始自增。
mysql,归零,无法自动排序,删除id,表单的数据没有从零开始出现怎样解决?删除数据仍然从删除的地方该怎样解决?表单的数据没有从2开始,而是从之前的删除的序号开始自增。
|
关系型数据库 MySQL 数据库
重命名表,应该怎么做?
有时候我们会遇到重命名表的需求,比如说因业务变化,需要将表 a 重命名为表 b 。这个时候可以执行 RENAME TABLE 语句或 ALTER TABLE 语句来重命名表。本篇文章我们一起来学习下重命名表相关知识。
366 0
|
小程序 数据库
零基础开发小程序第六课-删除数据(二)
零基础开发小程序第六课-删除数据(二)
|
关系型数据库 MySQL 程序员
程序员必须会的建数据表的方法
程序员必须会的建数据表的方法
116 0
|
小程序
零基础开发小程序第六课-删除数据(一)
零基础开发小程序第六课-删除数据(一)
|
数据库
数据库系统概论第三章示例数据库表建立与插入代码
数据库系统概论第三章示例数据库表建立与插入代码
98 0
|
C# 数据库 C++
手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like(持续更新)
有问题欢迎留言!!!  目录: 一、新建项目,添加引用 二、创建数据库 三、创建表 四、插入数据  五、查询数据  六、删除数据  七、运算符 八、like语句 我的环境配置:windows 64,VS,SQLite(点击下载),System.Data.SQLite.DLL(点击下载)。
7043 1
|
JavaScript 索引
面试题分享,修改数据无法更新UI
面试题分享,修改数据无法更新UI
140 0
面试题分享,修改数据无法更新UI