这两天想玩liquibase,去网上看了看,大多是那一篇文章抄来抄去的,一点不实用,而且没说咋跟spring结合,自己研究了研究,现在把研究结果贴出来。
首先声明,我实在spring3.0.6+hibernate3.6.8+struts2.2.3+maven2的基础上加入的liquibase框架,不知道这个框架怎么搭的请参见http://doujiang327.iteye.com/blog/1238767。
1.修改pom文件,加入liquibase所需包
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>1.9.1</version>
</dependency>
不能用2.1以及以上版本,因为它们已经修改了对spring支持的类。
2. 修改web.xml的配置文件,加入对liquidbase的支持
<!-- 配置spring的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:resources/spring/applicationContext-liquibase.xml,
classpath:resources/spring/applicationContext.xml
</param-value>
</context-param>
3. applicationContext-liquibase.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
default-lazy-init="false">
<bean id="liquibase" class="liquibase.spring.SpringLiquibase">
<property name="dataSource" ref="dataSource" />
<property name="changeLog" value="classpath:resources/liquibase/changelog.xml" />
</bean>
</beans>
dataSource请参见applicationContext.xml:http://doujiang327.iteye.com/blog/1238767
4. changelog.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.8"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.8 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.8.xsd">
<changeSet author="zhangxin" id="baseframe-ddl-1">
<createTable tableName="user">
<column name="user_id" type="VARCHAR(36)">
<constraints nullable="false" primaryKey="true" />
</column>
<column name="user_login" type="VARCHAR(36)" />
<column name="user_name" type="VARCHAR(36)" />
<column name="user_password" type="VARCHAR(12)" />
<column name="user_createID" type="VARCHAR(36)" />
<column name="user_createTime" type="DATETIME" />
<column name="user_updateID" type="VARCHAR(36)" />
<column name="user_updateTime" type="DATETIME" />
</createTable>
<insert tableName="user">
<column name="user_id" valueNumeric="00001" />
<column name="user_login" value="admin" />
<column name="user_name" value="管理员" />
<column name="user_password" value="admin" />
</insert>
</changeSet>
</databaseChangeLog>
运行吧,liquibase就这么简单。
分享到:
相关推荐
如果需要在启动应用时自动创建或更新数据库表,可以使用Spring Boot的Flyway或Liquibase插件进行数据库迁移。 9. **异常处理和日志** 为了提高应用的健壮性,可以配置全局异常处理器,并启用Spring Boot的日志...
在本项目实例中,我们探讨的是如何使用Spring MVC框架结合注解进行开发,以及如何实现对数据库表的CRUD(创建、读取、更新、删除)操作。Spring MVC是Spring框架的一部分,它专注于Web应用程序的模型-视图-控制器...
Spring Data MongoDB没有内置的解决方案,但可以通过第三方库如Flyway或Liquibase来管理MongoDB的数据迁移。 9. **异常处理**:Spring Data MongoDB将MongoDB的异常转换为Spring的`DataAccessException`子类,这...
总的来说,“postgres-testcontainer-liquibase-boot”项目展示了如何利用现代Java开发的最佳实践,通过Docker化的数据库、自动化数据库迁移工具和Spring Boot的便利性,构建一个高效、可靠的测试驱动开发环境。...
在实际开发中,我们通常会使用如Flyway或Liquibase这样的数据库版本管理工具来自动化这些过程。 `cloud-demo.zip`文件很可能是另一个压缩包,它可能包含了一个具体的SpringCloud演示项目的源代码。这个演示项目可能...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本资源“MySSH.rar”提供了一个基于SSH的项目示例,特别关注了Spring框架对SessionFactory的管理,这对于理解和优化企业级...
在IT行业中,Spring Boot是一个备受推崇的框架,它简化了基于Spring的应用开发,使得开发者能够快速构建可独立运行的应用程序。在本场景中,我们关注的是如何将一个使用Spring Boot、Spring、Spring JPA和MySQL...
结合“标签”"spring boot vue",我们可以推断出这个项目是全栈开发的实例,后端由Spring Boot驱动,处理业务逻辑和数据库操作,前端则由Vue.js构建,负责用户界面和交互。这样的架构结合了Spring Boot的强后端能力...
9. **Spring Boot 集成**:Liquibase 可以轻松地与 Spring Boot 应用集成,通过配置文件设置,启动时自动执行数据库迁移。 10. **自动化测试**:在测试环境中,Liquibase 可用于设置数据库的初始状态,确保每次测试...
在IT领域,Spring Boot是一个广泛应用的Java框架,它简化了Spring应用的初始搭建以及开发过程。这个"springboot 学生信息管理系统.zip"压缩包文件很可能是某个开发者为了教学或者演示目的创建的一个项目实例。下面将...
SpringBoot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者可以快速地创建一个独立...
"migrationExemple"项目提供了一个简化的实例,展示了如何利用Java和Spring Boot进行数据库迁移。在这个例子中,我们将深入探讨以下几个关键知识点: 1. **Spring Boot**: Spring Boot简化了Spring应用程序的开发...
总之,这个项目提供了一个完整的网上借阅系统实现,涵盖了后端服务、数据库管理和前端交互等多个方面,是学习和实践Spring Boot、JPA和MySQL整合开发的优秀实例。通过深入研究和理解这个项目,开发者可以提升自己的...
OAuth2.0是一种广泛使用的...在Java开发中,这些表通常由Spring Security OAuth2或类似库管理,并通过数据库迁移工具(如Flyway或Liquibase)进行初始化。理解这些表的结构对于实现和维护安全的OAuth2.0服务至关重要。
本项目"springboot_vue.zip"集成了这两个框架,提供了完整的前后端开发实例,方便开发者在IntelliJ IDEA中直接启动和运行。下面我们将深入探讨其中涉及的关键知识点。 一、SpringBoot框架 1. **简介**:SpringBoot...
SpringBoot简化了Spring的配置,提高了开发效率,其特性包括自动配置、健康检查、内嵌Web服务器等,使得开发者能快速构建稳定且可扩展的应用。 【文件名称】"job-plus-dev"可能是项目的主要开发分支或者模块名称,...
SpringBoot是Spring生态体系中的一个重要组成部分,它简化了Spring应用的初始搭建以及开发过程,使得开发者可以更快速地构建高质量的应用。以下是对该书内容的详细解读: 1. **SpringBoot概述**:SpringBoot的核心...
总的来说,这个项目提供了一个完整的中小型医院信息管理系统实例,涵盖了前后端开发的多个方面,是学习SpringBoot和Java web开发的好材料。通过分析源码和数据库设计,我们可以了解如何在实际场景中运用这些技术和...
SpringBootCrudApplication是一个基于Spring Boot框架的简单CRUD(创建、读取、更新、删除)应用程序实例。Spring Boot是Spring框架的一个子项目,旨在简化Spring应用程序的初始搭建以及开发过程,它内置了Tomcat...
SpringBoot是一个由Pivotal团队开发的框架,它旨在简化Spring应用的初始搭建以及开发过程。这个名为"springboot-crud.rar"的压缩包提供了一个基础的SpringBoot项目,用于演示如何实现数据库的CRUD(Create、Read、...