当前位置: 代码网 > it编程>编程语言>Java > springboot+mybatis-plus实现自动建表的示例

springboot+mybatis-plus实现自动建表的示例

2024年07月05日 Java 我要评论
好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁,步步高

好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~
工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁,步步高升。

言归正传,作为技术从业者,还是要多深耕技术。有小伙伴问,在springboot工程中,持久层采用的mybatis框架,如何能够自动建表,一个团队中各个小伙伴针对新增需求会添加或修改表,但各自调试时,数据库表更新又不及时,造成很大不便。下面记录一下springboot+mybatis-plus实现自动建表。

1、环境

  • springboot2.x
  • mybatis-plus3.5.0
  • mybatis-enhance-actable1.1.1.release
  • mysql5.7.x
  • idea开发工具

2、新建springboot工程

2.1、pom依赖如下

	<dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>
            <groupid>com.baomidou</groupid>
            <artifactid>mybatis-plus-boot-starter</artifactid>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupid>com.gitee.sunchenbin.mybatis.actable</groupid>
            <artifactid>mybatis-enhance-actable</artifactid>
            <version>1.1.1.release</version>
        </dependency>
        <dependency>
            <groupid>mysql</groupid>
            <artifactid>mysql-connector-java</artifactid>
        </dependency>

        <dependency>
            <groupid>org.projectlombok</groupid>
            <artifactid>lombok</artifactid>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-test</artifactid>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.2、application配置

server:
  port: 9001

spring:
  #数据库配置
  datasource:
    url: jdbc:mysql://localhost:3306/test?servertimezone=utc&useunicode=true&characterencoding=utf-8&usessl=false
    driver-class-name: com.mysql.cj.jdbc.driver
    username: root
    password: root

#自动建表设置
mybatis:
  table:
    #create系统启动后,会将所有的表删除掉,然后根据model中配置的结构重新建表,该操作会破坏原有数据;
    #update系统会自动判断哪些表是新建的.哪些字段要修改类型等,哪些字段要删除,哪些字段要新增,该操作不会破坏原有数据;
    #add新增表/新增字段/新增索引新增唯一约束的功能,不做做修改和删除(只在版本1.0.9.release及以上支持);
    #none系统不做任何处理;
    auto: update
  model:
    #扫描用于创建表的对象的包名
    pack: com.*.*.model
  database:
    #数据库类型目前只支持mysql
    type: mysql

#mybatis-plus
mybatis-plus:
  #固定的
  mapper-locations: classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml

注意,mybatis-plus是固定的,采用的是mybatis-enhance-actable插件。

3、集成mybatis-plus

启动类配置如下

@springbootapplication
@mapperscan("com.*.*.mapper")
@componentscan("com.*.*.*")
@mapperscan({"com.gitee.sunchenbin.mybatis.actable.dao.*"})//固定的
@componentscan("com.gitee.sunchenbin.mybatis.actable.manager.*")//固定的
public class springbootmybatisplus2application {

    public static void main(string[] args) {
        springapplication.run(springbootmybatisplus2application.class, args);
    }

}

注意,固定的是采用的是mybatis-enhance-actable插件。

实体类配置如下

@data
@table(name = "t_test")
@tablename(value = "t_test")
public class test {

    @tableid(value = "id",type = idtype.auto)
    @iskey
    @isautoincrement
    @column(name = "id",comment = "主键")
    private long id;

    @tablefield(value = "name")
    @column(name = "",comment = "名称",isnull = false)
    private string name;

    @tablefield(value = "create_time")
    @column(name = "create_time",comment = "创建时间")
    private string creattime;

    @column(name = "update_time",comment = "修改时间")
    private string updatetime;

}

注解分别为mybatisplus提供的、mybatis-enhance-actable提供的,前者的注解是用来进行持久层操作的(增删改查),后者的注解是用来进行自动建表的。

4、业务操作

mapper类如下

@mapper
public interface testmapper extends basemapper<test> {
}

service类如下

public interface testservice extends iservice<test> {}
@service
public class testserviceimpl extends serviceimpl<testmapper, test> implements testservice {
}

controller类如下

@restcontroller
@requiredargsconstructor
public class testcontroller {

    private final testserviceimpl testservice;

    @getmapping("/hello")
    public object hello() {
        return "hello";
    }

    @getmapping("/save")
    public object save() {
        test test = new test();
        test.setname("caocao");
        testservice.save(test);
        return test;
    }

    @getmapping("/list")
    public object list() {
        list<test> list = testservice.list();
        return list;
    }
}

5、测试结果

启动服务,结果类似如下

在这里插入图片描述

在这里插入图片描述

访问结果如下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到此这篇关于springboot+mybatis-plus实现自动建表的示例的文章就介绍到这了,更多相关springboot mybatisplus自动建表内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com