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

举报
知识浅谈 发表于 2022/06/28 22:07:07 2022/06/28
【摘要】 关于动态创建删除数据库表一共包含三个步骤, 引入依赖动态创建动态删除 前提自己先创建一个springboot的项目 第一步: 引入相关依赖(操作数据库的三剑客) pom中mysql三剑客依赖&lt...

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

  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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

  1. controller

     @RequestMapping("/createTable")  //动态创建表
        public void test2(){
            String tableName = "t2";      //mybatis中#() 占位符,对应的变量会自动加上引号   $()  拼接符,对应的变量不会自动加上引号
            String name = "name";     //表中字段名字
            testService.test12(tableName,name);//创建表
            return;
        }
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  2. service

        void test12(String tableName,String name);
    
        
       
    • 1
  3. serviceimpl

        @Override
        public void test12(String tableName,String name) {
            testMapper.test2(tableName,name);
            return;
        }
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
  4. mapper

        void test2(@Param("tableName") String tableName,@Param("name") String name);
    
        
       
    • 1
  5. 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

第三步:动态删除数据表

  1. controller

        @RequestMapping("/deleteTable")  //动态删除表
        public void deletetable(){
            String tableName = "t2";
            testService.test3(tableName);
            return;
        }
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  2. service

        void test3(String tableName);
    
        
       
    • 1
  3. serviceimpl

        @Override
        public void test3(String tableName) {
            testMapper.test3(tableName);
        }
    
        
       
    • 1
    • 2
    • 3
    • 4
  4. mapper

        void test3(@Param("tableName") String tableName);
    
        
       
    • 1
  5. mapper.xml

    <update id="test3" parameterType="java.lang.String">
        DROP TABLE IF EXISTS ${tableName}
    </update>
    
        
       
    • 1
    • 2
    • 3

公众号:知识浅谈
到此就结束了,如果对您有帮助,请君三连哦。

文章来源: englishcode.blog.csdn.net,作者:知识浅谈,版权归原作者所有,如需转载,请联系作者。

原文链接:englishcode.blog.csdn.net/article/details/120138390

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。