- 浏览: 67799 次
- 性别:
- 来自: 绍兴
最新评论
开发过程中经常碰到数据库更改的情况,在日常环境下如果每位开发人员连接的都是同一个库,那问题不算太大,修改代码上传后仅需修改该公共库即可,但是如果连的是本地个人的库那必须要把修改的sql语句发给其他开发者各自进行修改,这个工作是非常繁琐的;
liqiubase帮我们做了这些事情,通过xml配置的方式来增加修改表,添加数据等等操作,下面直接进入配置代码示例
首先需引入liqiubase的核心包
liquibase-core-1.9.5.jar
liqiubase的配置启用很简单,只需在spring配置文件中添加以下代码集合
dataSource是spring管理数据源,数据源指向一个库,liqiubase就是通过该数据源对库进行操作
然后就配置数据库操作了,比如我要创建一张权限表,我创建一个permissions.xml引入到spring
主要的标签就是changeSet每一次数据库操作就是一个changeSet,注意id不能重复
liqiubase会在我们库里面建几张它自己的表,当每次应用启动应用会去查id对应的changeSet是否被执行过,如果未执行就执行一遍然后记录.当其他开发人员下载到你的数据库操作配置后,liqiubase在他的库上发现你上次的changeSet没被执行过,就会执行一次
liqiubase对于统一管理数据库构建是非常方便的,平时上班空闲时都会自己搞搞例子,有时候要带回家做的话只需带走程序代码就行,到家里的电脑创建一个库就行,表结构和初始数据的创建都由liqiubase来搞定了,这就是一次配置终身受用啊.而且我个人比较喜欢用hibernate,hibernate的其中一个优点就是跨数据库,但如果构建数据库的语句已经写死了还怎么更改数据库呢
liqiubase帮我们做了这些事情,通过xml配置的方式来增加修改表,添加数据等等操作,下面直接进入配置代码示例
首先需引入liqiubase的核心包
liquibase-core-1.9.5.jar
liqiubase的配置启用很简单,只需在spring配置文件中添加以下代码集合
<!-- 配置liqiubase --> <bean id="liquibase" class="liquibase.spring.SpringLiquibase"> <property name="dataSource" ref="dataSource" /> <property name="changeLog" value="classpath:changelog.xml" /> </bean>
dataSource是spring管理数据源,数据源指向一个库,liqiubase就是通过该数据源对库进行操作
然后就配置数据库操作了,比如我要创建一张权限表,我创建一个permissions.xml引入到spring
<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>
主要的标签就是changeSet每一次数据库操作就是一个changeSet,注意id不能重复
liqiubase会在我们库里面建几张它自己的表,当每次应用启动应用会去查id对应的changeSet是否被执行过,如果未执行就执行一遍然后记录.当其他开发人员下载到你的数据库操作配置后,liqiubase在他的库上发现你上次的changeSet没被执行过,就会执行一次
liqiubase对于统一管理数据库构建是非常方便的,平时上班空闲时都会自己搞搞例子,有时候要带回家做的话只需带走程序代码就行,到家里的电脑创建一个库就行,表结构和初始数据的创建都由liqiubase来搞定了,这就是一次配置终身受用啊.而且我个人比较喜欢用hibernate,hibernate的其中一个优点就是跨数据库,但如果构建数据库的语句已经写死了还怎么更改数据库呢
发表评论
-
Web开发学习13聊聊java反射
2016-07-12 18:41 717很喜欢一本叫《走出软件作坊》的书,其中有一句话让我较为深刻,“ ... -
Web开发学习12 浅谈设计模式
2016-07-01 13:33 1282在我刚接触 ... -
Web开发学习11 全局缓存控制
2015-10-12 14:27 705缓存用的好可以减少数据库的压力,在大并发的情况下极大的提升服务 ... -
Web开发学习10 hadoop实战
2015-10-09 14:02 696前一篇说到项目记录了很多埋点日志,当有一天项目需求需要对这些日 ... -
Web开发学习(9)全局埋点
2015-07-27 11:10 1958埋点的作用是把客户端每次访问服务端的操作记录下来,包括请求连接 ... -
Web开发学习8Struts2基类封装
2015-07-24 12:03 667一个好的基类可以帮助开发者减少很多开发工作,像我这种爱偷懒的人 ... -
Web开发学习7按钮级别权限控制
2015-07-23 16:21 13248这个功能的思路是自己原创的,没看过其他例子,其实是在做之前网上 ... -
浅列JavaEnum
2014-01-05 16:42 748enum Province{ ZHEJIANG,SHANGHA ... -
maven常用命令
2013-07-08 10:20 7511、创建普通Java项目: ... -
canvas绘制科赫雪花
2012-12-20 17:24 2109<html> <head> ... -
html5 audio与video方法属性事件概括
2012-12-20 14:46 1061play() 继续播放 pause() ... -
spring 整合mina
2012-12-20 11:48 1072首先定义自定义过滤器 <bean id=" ... -
Web开发学习(5)添加springsecurity应用
2011-12-14 15:00 920我学习公司这个架构多半就是为了把springsecurity搞 ... -
Web开发学习(4)添加spring应用
2011-12-14 14:45 760印象中似乎没做过不用spring的项目,因为它在web开发中的 ... -
Web开发学习(3)配置struts-tiles插件(附带json插件)
2011-12-05 15:22 2515struts的tiles插件是非常实用的,从某些方面可以很好的 ... -
使用线程删除导出临时文件
2011-12-01 16:33 2219项目支持大数据量导出e ... -
jQuery实现表格行点击选中复选框
2011-11-23 12:36 5941这个需求是在项目完成后客户提出的要求,看似简单但是还需要一点小 ... -
Web开发学习(2)配置convention插件
2011-11-04 10:28 1347注解的方式某些程度上能减少xml的配置量,个人感觉使程序更加清 ... -
Web开发学习(1)使用eclipse搭建maven项目
2011-10-20 10:04 5695首先用eclipse创建工程 ne ... -
数据库连接泛型基类创建
2011-06-30 11:49 952记录 以便以后参考---- 基类代码 public cl ...
相关推荐
ASP.NET Web开发学习实录光盘 视频文件太大,没有加入. 简介: ASP.NET是微软力推的Web开发编程技术,也是当今最热门的Web开发手段之一。ASP.NET 3.5技术提高了网络系统平台开发的效率和安全性,如新增匿名类型、...
Ruby on Rails Web开发学习实录 内容简介: 在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度...
jsp web开发学习实录
Struts 2 Web开发学习实录
MVC Web开发学习实录光盘资源。共15章,在VS2010下运行。
ASP.NET Web开发学习实录_源码
PYTHON WEB开发学习实录.pdf PYTHON WEB开发学习实录.pdf
《Python Web开发学习实录》完整版 高清扫描 PDF电子书
《Web服务开发学习实录》一书的配书光盘,内容包括了书中所使用的源项目文件以及一套对应的视频教学讲座。不过视频过大没有上传,读者想要可以回复邮箱。
《PHP Web开发学习实录》
Java Web开发学习手册随书光盘源码
《Python Web开发学习实录》,李勇,王文强编著,清华大学出版社,高清。
Java-JDK、数据库系统开发、Web开发学习笔记
《ASP.NET Web 开发学习实录》电子图书
MVC Web开发学习实录 清华出版,讲解asp.net mvc 开发
MVC+Web开发学习实录 14章 blog 源码 仅14章blog的代码
MVC WEB开发学习实录,清华出版社。mvc学习启蒙不错,给的代码浅显易懂
PYTHON WEB开发学习实录.pdf 两部份之第一部分 PYTHON WEB开发学习实录.pdf总共62M