- 浏览: 69611 次
- 性别:
- 来自: 绍兴
最新评论
开发过程中经常碰到数据库更改的情况,在日常环境下如果每位开发人员连接的都是同一个库,那问题不算太大,修改代码上传后仅需修改该公共库即可,但是如果连的是本地个人的库那必须要把修改的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 765很喜欢一本叫《走出软件作坊》的书,其中有一句话让我较为深刻,“ ... -
Web开发学习12 浅谈设计模式
2016-07-01 13:33 1325在我刚接触 ... -
Web开发学习11 全局缓存控制
2015-10-12 14:27 746缓存用的好可以减少数据库的压力,在大并发的情况下极大的提升服务 ... -
Web开发学习10 hadoop实战
2015-10-09 14:02 762前一篇说到项目记录了很多埋点日志,当有一天项目需求需要对这些日 ... -
Web开发学习(9)全局埋点
2015-07-27 11:10 2025埋点的作用是把客户端每次访问服务端的操作记录下来,包括请求连接 ... -
Web开发学习8Struts2基类封装
2015-07-24 12:03 710一个好的基类可以帮助开发者减少很多开发工作,像我这种爱偷懒的人 ... -
Web开发学习7按钮级别权限控制
2015-07-23 16:21 13355这个功能的思路是自己原创的,没看过其他例子,其实是在做之前网上 ... -
浅列JavaEnum
2014-01-05 16:42 791enum Province{ ZHEJIANG,SHANGHA ... -
maven常用命令
2013-07-08 10:20 7921、创建普通Java项目: ... -
canvas绘制科赫雪花
2012-12-20 17:24 2162<html> <head> ... -
html5 audio与video方法属性事件概括
2012-12-20 14:46 1124play() 继续播放 pause() ... -
spring 整合mina
2012-12-20 11:48 1122首先定义自定义过滤器 <bean id=" ... -
Web开发学习(5)添加springsecurity应用
2011-12-14 15:00 965我学习公司这个架构多半就是为了把springsecurity搞 ... -
Web开发学习(4)添加spring应用
2011-12-14 14:45 798印象中似乎没做过不用spring的项目,因为它在web开发中的 ... -
Web开发学习(3)配置struts-tiles插件(附带json插件)
2011-12-05 15:22 2573struts的tiles插件是非常实用的,从某些方面可以很好的 ... -
使用线程删除导出临时文件
2011-12-01 16:33 2276项目支持大数据量导出e ... -
jQuery实现表格行点击选中复选框
2011-11-23 12:36 6008这个需求是在项目完成后客户提出的要求,看似简单但是还需要一点小 ... -
Web开发学习(2)配置convention插件
2011-11-04 10:28 1396注解的方式某些程度上能减少xml的配置量,个人感觉使程序更加清 ... -
Web开发学习(1)使用eclipse搭建maven项目
2011-10-20 10:04 5748首先用eclipse创建工程 ne ... -
数据库连接泛型基类创建
2011-06-30 11:49 1001记录 以便以后参考---- 基类代码 public cl ...
相关推荐
jsp web开发学习实录
Struts 2 Web开发学习实录
《PHP Web开发学习实录》
这个"ASP.NET WEB开发学习实录-----源码.rar"压缩包显然包含了某位开发者或者教师在教授ASP.NET Web开发过程中积累的源代码和相关材料,可能是为了帮助学习者理解ASP.NET的核心概念和实际应用。 首先,我们来看ASP...
本书适合Python爱好者、大中专院校的学生、社会培训班的学生以及使用Python语言进行系统管理、GUI 开发、Web开发、数据库编程和网络编程的程序员使用。 第1章 欢迎来到Python世界 第2章 练就扎实的基本功 第3章 ...
Java Web 开发学习心得 Java web 开发学习心得是指通过学习 Java web 开发课程获得的经验和体会。本文将从 Java web 开发的基本概念开始,逐步讲解 Java web 开发的知识点,并总结出学习 Java web 开发的要点和心得...
Ruby on Rails Web开发学习实录.pdf
基于SpringBoot+mysql的招聘网站系统,适合个人web开发学习,本科毕业设计,java课程设计等 基于SpringBoot+mysql的招聘网站系统,适合个人web开发学习,本科毕业设计,java课程设计等 基于SpringBoot+mysql的招聘...
Java Web开发学习手册-高清-2011年4月,分享给所有需要的人!
《Java Web开发学习手册》是一本专为初学者和进阶者设计的全面教程,它涵盖了从基础到高级的Java Web开发技术。这本书的核心目标是帮助读者理解和掌握如何使用Java语言构建动态、交互式的Web应用程序。书中不仅提供...
Delphi Web前端开发教程是针对想要使用TMS WEB Core框架创建Web应用程序的开发者,无论你是初学者还是高级开发者,本教程都提供了丰富的学习资源。TMS WEB Core框架是Delphi世界中的一大创新,它允许开发者使用...
"Python Web开发实录源代码"是针对这一主题的学习资料,通常包含一系列的示例项目和练习,旨在帮助开发者通过实践掌握Web开发的关键概念和技术。 首先,Python作为服务器端编程语言,其简洁的语法和强大的库支持...
《Java Web 整合开发 完全自学手册》是一本深度探讨Java Web技术的书籍,由白广元编著。这本书旨在帮助读者全面掌握Java Web应用程序的开发技能,从基础到高级,涵盖了一系列核心概念和技术。通过源代码的学习,读者...
《Tomcat与Java Web开发技术详解》还可作为高校相关专业学生学习Java Web开发的参考书,以及企业Java Web培训教材,也可作为SUN公司的SCWCD(SUN Certified Web Component Developer)认证的辅导教材。
Web开发学习路线及示例,包括Web前端和后端的开发学习路线及项目示例。
"Web 前端开发学习路线" Web 前端开发是一个非常重要的IT技术,掌握Web前端开发技术可以帮助开发者创建更加美观、交互性强的网站。下面是关于Web前端开发学习路线的知识点总结: 1. 学习Web前端开发之前,需要具备...
总的来说,《C# Web开发者指南教程》是一本全面的指南,不仅适合完全没有编程背景的初学者,也适合有一定基础想要深入学习C# Web开发的读者。通过这本书,你可以学习到构建高效、可靠的Web应用所需的所有基础知识,...
《Tomcat与Java Web开发技术详解(第2版)》结合最新的Tomcat 6版本,详细介绍了开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方...
这本书旨在帮助学习者深入理解Web前端开发的核心概念和技术,通过解决实际问题来巩固理论知识。 一、HTML基础 HTML(超文本标记语言)是网页制作的基础,它定义了网页的结构。储久良第三版教材中的答案可能包括各种...
《Tomcat与Java Web开发技术详解(第2版)》是一本深入探讨Java Web应用程序部署和运行环境的权威指南。本书主要围绕Apache Tomcat服务器展开,涵盖了从基础概念到高级特性的全方位讲解,旨在帮助读者掌握Java Web...