springboot+mybatis-plus实现自动建表

这篇具有很好参考价值的文章主要介绍了springboot+mybatis-plus实现自动建表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~
工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁,步步高升。
言归正传,作为技术从业者,还是要多深耕技术。有小伙伴问,在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、测试结果

启动服务,结果类似如下
mybatisplus创建表,Mybatis,spring boot,mybatis,mybatis-plus,自动建表
mybatisplus创建表,Mybatis,spring boot,mybatis,mybatis-plus,自动建表
访问结果如下
mybatisplus创建表,Mybatis,spring boot,mybatis,mybatis-plus,自动建表
mybatisplus创建表,Mybatis,spring boot,mybatis,mybatis-plus,自动建表
mybatisplus创建表,Mybatis,spring boot,mybatis,mybatis-plus,自动建表文章来源地址https://www.toymoban.com/news/detail-598776.html

到了这里,关于springboot+mybatis-plus实现自动建表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot~mybatis-plus的DynamicTableNameInnerInterceptor实现分表

    DynamicTableNameInnerInterceptor是mybatis-plug的一个拦截器插件,可以自己定义需要拦截的表单,然后对它进行加工,这时mybatis-plus就会把SQL代码的表名加上你的这个装饰。 我们通常把mybatis做成一个包,公司其它同事直接使用咱们的包,包里会统一定义数据 基类 、 数据分页 、 数据

    2024年02月06日
    浏览(52)
  • springboot mybatis-plus swing实现报警监听

    通过声音控制报警器,实现声光报警,使用beautyeye_lnf.jar美化界面如下 其他工具类

    2024年01月19日
    浏览(45)
  • SpringBoot使用MybatisPlus自动建表

    导入依赖 application.yml 启动类上添加注解 公共父类 实体类 运行后自动建表(更新表)

    2024年02月15日
    浏览(27)
  • SpringBoot 结合 mybatis-plus 实现分页功能

            要实现分页功能方法有很多,但最基本的实现原理都差不多,所以在实现功能之前要先把原理搞明白。正如删除有 “逻辑删除”  和 “物理删除\\\" 之分,分页也有 “逻辑分页” 和 “物理分页”; 1、逻辑分页:逻辑分页依赖于代码。(Mybatis自带的分页插件就是逻

    2024年02月06日
    浏览(42)
  • SpringBoot+Mybatis-Plus实现增删改查超详细步骤

    目录 一、介绍 视频讲解 二、前期准备工作 (一) 创建springboot项目和创建数据库 三、项目配置 (一)pom.xl导入相关依赖  1.导入依赖 (二)yml文件中配置连接数据库 2.配置yml文件  四、代码的编写 数据库展示 项目提前展示!!! (三)MySQL表绑定到spring boot(实体层)

    2024年02月13日
    浏览(38)
  • SpringBoot整合Mybatis-Plus+Druid实现多数据源

    🌺本文主要讲解 springboot +mybatisplus + druid 实现多数据源配置功能 🌺 主页传送门:📀 传送 Spring Boot:    Spring Boot是一个基于Spring框架的开源Java开发框架,旨在简化Spring应用程序的开发、配置和部署。它提供了一种快速、敏捷的方式来构建独立的、生产级别的Spring应用程

    2024年02月09日
    浏览(102)
  • SpringBoot整合Mybatis-Plus、Jwt实现登录token设置

    Spring Boot整合Mybatis-plus实现登录常常需要使用JWT来生成用户的token并设置用户权限的拦截器。本文将为您介绍JWT的核心讲解、示例代码和使用规范,以及如何实现token的生成和拦截器的使用。 一、JWT的核心讲解 JWT(JSON Web Token)是一种基于JSON的,用于在网络上安全传输信息的

    2024年02月02日
    浏览(64)
  • SpringBoot整合mybatis-plus实现分页查询(建议收藏)

    一、前言         最近学习了SpringBoot分页查询的两种写法,一种是手动实现,另一种是使用框架实现。现在我将具体的实现流程分享一下。 二、手动实现分页查询         先复习一下,SQL中的limit,下面一行sql语句的意思是从第二个数据开始查,查询出两条数据

    2024年01月16日
    浏览(67)
  • SpringBoot+Sharding-jdbc+mybatis-plus实现水平分表

    这块我就不演示了

    2024年02月12日
    浏览(31)
  • 【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案

    项目技术栈:jdk (1.8) + spring boot (2.1.0) + mybatis-plus (3.5.1) 数据库: MySQL 字段类型:varchar 和 Integer 从前端传过来的数据实体字段, convertType 和 step 设为null时,使用mybatis-plus 的 updateById方法往数据库中更新时,这两个字段不更新,数据不为空可以插入。 mybatis-plus在更新的时候做

    2024年01月16日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包