首页 > 其他分享 >SpringBoot集成liquibase

SpringBoot集成liquibase

时间:2023-08-23 17:23:05浏览次数:37  
标签:集成 SpringBoot spring 数据库 boot liquibase mysql org

Liquibase 是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在 XML 文件中,便于版本控制。

前置准备

  • 创建一个SpringBoot项目
  • 开发环境
    • Spring Boot-2.7.14�
    • Java(jdk8)
    • Mysql-8.0.27

开始集成

引入坐标

  • mysql-connector存在两个版本:com.mysql.mysql-connector-jmysql.mysql-connector-java�具体是哪个,可以根据spring-boot-dependencies-2.7.14.pom中的定义
  • liquibase的LiquibaseAutoConfiguration�配置,是必须要有数据库连接的,所以引入mybatis-plus。也可以引入其他的,例如:jpa
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.14</version>
  </parent>

  <groupId>com.tzcxyh</groupId>
  <artifactId>lulu</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>lulu</name>
  <description>lulu</description>

  <properties>
    <java.version>1.8</java.version>
    <mybatis-plus.version>3.5.0</mybatis-plus.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- lombook依赖 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

    <!--mysql-->
    <!--spring-boot-dependencies中已经指定版本-->
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
    </dependency>

    <!-- liquibase -->
    <dependency>
      <groupId>org.liquibase</groupId>
      <artifactId>liquibase-core</artifactId>
    </dependency>

    <!-- Mybatis-Plus Start -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>${mybatis-plus.version}</version>
    </dependency>
    <!-- Mybatis-Plus End -->

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

新建一个数据

image.png

在application.properties中添加配置

#liquibase的启始master.xml配置
spring.liquibase.change-log=classpath:liquibase/master.xml

# mysql 8.x
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
spring.datasource.url: jdbc:mysql://127.0.0.1:3306/lulu-auth?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull
spring.datasource.username: root
spring.datasource.password: 123456

配置liquibase的xml

resources文件夹下面新建liquibase/master.xml。用于管理执行的数据库操作集合

<databaseChangeLog
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
    <!-- 指定执行的文件 -->
    <include file="liquibase/selfChangeLog.xml"/>
</databaseChangeLog>

启动项目,观察数据库变化

  • 在数据库中新建了两个表DATABASECHANGELOGDATABASECHANGELOGLOCK

image.png

  • DATABASECHANGELOG中记录了以<changeSet>为单位的日志,并记录了MD5防止修改

image.png

标签:集成,SpringBoot,spring,数据库,boot,liquibase,mysql,org
From: https://www.cnblogs.com/lulu-buding/p/17652247.html

相关文章

  • 2023下半年深圳软考中级系统集成项目管理工程师即将开班
    系统集成项目管理工程师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成项目管理工程师,属于软考三个级别中的“中级”。 考试合格者将颁发由中......
  • 任务调度工具_Spring Task在SpringBoot中使用教程
    ##SpringTask1.1介绍SpringTask是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定位:定时任务框架作用:定时自动执行某段Java代码为什么要在Java程序中使用SpringTask?应用场景:1).信用卡每月还款提醒2).银行贷款每月还款提醒3).火车......
  • springboot整合资源文件
    1:什么是SpringBoot?SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过==简化配置==来进一步简化Spring应用的整个搭建和开发过程。另外SpringBoot还通过继承大量框架使依赖包的版本冲突,以及引用不稳定性等问题的到了很好的解决。2:SpringBoot的优点(1)可以......
  • 打造引人注目的直播体验:直播美颜SDK的集成与优化
    随着移动互联网的迅速发展,视频直播已经成为人们交流、娱乐和信息传递的重要方式。在这个多元化的直播市场中,吸引观众的注意力变得尤为重要。其中,美颜技术在增强直播体验方面发挥着关键作用。直播美颜SDK的集成和优化使得主播能够以最佳状态出现在镜头前,同时也为观众提供更加愉悦的......
  • 在集成H.265视频流媒体播放器EasyPlayer.js时遇到"SourceBuffer"报错,应该如何解决?
    EasyPlayer,是由TSINGSEE青犀视频推出的一款功能强大且开放性很高的H.265视频流媒体播放器。它支持H.264和H.265视频格式的播放,并具有稳定性强、流畅播放等特点。此外,EasyPlayer还有多个版本可供选择,例如EasyPlayer-RTSP、EasyPlayer-Pro、EasyPlayer.js等。有用户反馈,在使用播放器......
  • 基于Springboot的个人网站的设计与实现-计算机毕业设计源码+LW文档
    一、设计(论文)选题的依据1.研究背景与意义现在越来越多的人关注网站的自动化设计与开发,什么是个人网站呢?它的出现和运营究竟承载这怎样的信息?这并不是每个人都清楚的很多人无法准确的理解个人网站的优势和作用,我对网站的认识还处于相当低的程度中所以在正文开始前我想先阐述自己对......
  • Vue+SpringBoot项目分离部署踩坑记录
    昨天花了一晚上终于成功部署了个人网站,在这个过程中踩了很多坑,现在回顾总结记录一下,以免今后继续犯错误前端:Vue后端:SpringBoot数据库:Mysql一、前端1、前端项目采用Nginx进行部署,其中Nginx配置文件部分内容如下nginx.conf部分内容1server{2listen443ssl......
  • idea无法构建springboot工程
    1、出现的问题Initializationfailedfor'http://start.aliyun.com'PleasecheckURL,networkandproxysettings.Errormessage:ErrorparsingJSONresponse 2.解决方案   ......
  • SpringBoot整合FFmpeg进行视频分片上传------>Windows
    SpringBoot整合FFmpeg进行视频分片上传------>Windows分片上传的核心思路:将文件按一定的分割规则(静态或动态设定,如手动设置20M为一个分片),用slice分割成多个数据块。为每个文件生成一个唯一标识Key,用于多数据块上传时区分所属文件。所有分片上传完成,服务端校验合并标识为Key的......
  • Springboot生成二维码整合
    Springboot生成二维码整合我们使用两种方式,去生成二维码,但是其实,二维码的生成基础,都是zxing包,这是Google开源的一个包,第一种是使用原始的zxing方式去实现,第二种是使用hutool来实现,hutool其实也是对于zxing的一个封装,但是封装前后,确实比较简单了。Zxing原生方式添加依赖<!--zx......