Web开发学习6添加liqiubase

[size=large]开发过程中经常碰到数据库更改的情况,在日常环境下如果每位开发人员连接的都是同一个库,那问题不算太大,修改代码上传后仅需修改该公共库即可,但是如果连的是本地个人的库那必须要把修改的sql语句发给其他开发者各自进行修改,这个工作是非常繁琐的;

liqiubase帮我们做了这些事情,通过xml配置的方式来增加修改表,添加数据等等操作,下面直接进入配置代码示例
首先需引入liqiubase的核心包
liquibase-core-1.9.5.jar

liqiubase的配置启用很简单,只需在spring配置文件中添加以下代码集合[/size]
 <!-- 配置liqiubase -->
<bean id="liquibase" class="liquibase.spring.SpringLiquibase">
<property name="dataSource" ref="dataSource" />
<property name="changeLog" value="classpath:changelog.xml" />
</bean>


[size=large]dataSource是spring管理数据源,数据源指向一个库,liqiubase就是通过该数据源对库进行操作

然后就配置数据库操作了,比如我要创建一张权限表,我创建一个permissions.xml引入到spring[/size]

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<changeSet author="admin" id="permissions-10005">
<createTable tableName="permissions">
<column name="id" type="bigint">
<constraints nullable="false" primaryKey="true" />
</column>
<column name="name" type="varchar(32)" />
<column name="actionurl" type="varchar(256)" />
<column name="jsurl" type="varchar(256)" />
<column name="level" type="int" />
<column name="parentid" type="bigint"/>
<column name="ordernum" type="int" defaultValue="0"/>
</createTable>

<insert tableName="permissions">
<column name="id" value="1"/>
<column name="name" value="用户管理" />
<column name="level" value="1" />
<column name="parentid" value="-1"/>
<column name="ordernum" value="1"/>
</insert>
</changeSet>
</databaseChangeLog>

[size=large]主要的标签就是changeSet每一次数据库操作就是一个changeSet,注意id不能重复
liqiubase会在我们库里面建几张它自己的表,当每次应用启动应用会去查id对应的changeSet是否被执行过,如果未执行就执行一遍然后记录.当其他开发人员下载到你的数据库操作配置后,liqiubase在他的库上发现你上次的changeSet没被执行过,就会执行一次

liqiubase对于统一管理数据库构建是非常方便的,平时上班空闲时都会自己搞搞例子,有时候要带回家做的话只需带走程序代码就行,到家里的电脑创建一个库就行,表结构和初始数据的创建都由liqiubase来搞定了,这就是一次配置终身受用啊.而且我个人比较喜欢用hibernate,hibernate的其中一个优点就是跨数据库,但如果构建数据库的语句已经写死了还怎么更改数据库呢[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值