动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Servlet 2.1规范概述(中文版).
.Java实战篇:设计自己的Annotati.
.struts的bean标签库.
.网友杂谈各种app Server.
.JavaSocket编程中的一个秘密类.
.反向控制和面向切面编程在Spring.
.学习Java Web Start.
.J2EE运行环境性能优化艺术之三.
.equals与“==”操作符的比较.
.Tomcat5.5的基本配置详细说明.
.企业应用的Web服务安全技术:框架.
.继承“protected”.
.一步一步用JBuilder5开发EJB(上).
.技术分析:使用Eclipse进行SWT编程.
.用JWSDP将Java和Web服务结合起来.
.WebLogic的初步研究.
.Java核心代码例程之:HelloWorld.
.Comment 语句.
.使用JavaMail发送邮件.
.小议如何在Applet 中显示图象.

Java 项目中应用Subversion配置与管理

发表日期:2008-1-5 |


Java 企业级项目中应用Subversion的配置与理
--JavaSVN + Subversion跟踪数据变化历史

译者:陈海青(http://www.chq.name)

    企业最重要的资产应该是数据信息,但现在的企业应用除了需要存储数据外,还经常要求跟踪数据变化整个过程,并会扩展到一系列相关的要求,如数据变化的原因、变化的时间等,而且在许多情况下是对以文档形式存储的数据进行跟踪。使用SubVersion可以满足这些貌似普通但实际上很复杂的要求

版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
作者:陈海青(http://www.chq.name);michaelzyy
原文:http://www.matrix.org.cn/resource/article/2007-02-05/Subversion_ba84f1b9-b4b0-11db-b1a9-1f2330fc56f8.Html
要害字:Java;Subversion

来自数据的挑战

    企业应用存储了要害数据,而且应用程序并不仅限于对数据进行插入、读取、更新和删除操作(即CRUD),应用程序还期望能够存储数据更改的历史记录。此外,企业按照一系列的业务或者规定的要求,不但要求存储数据资产更改结果的历史,而且要求存储是谁,在什么时候,因为什么原因,如何改变了数据等等诸如此类的跟踪信息。

    应用数据的形式和尺寸也有很多变数,既有简单数据,如字符串和数字型,也有复杂的类型,如使用Blob或Cblob类型来存储文档。典型的应用程序要处理大量的上传给程序处理的以文档形式存储的数据,假如用传统的历史表等方式来跟踪诸如复杂类型的文档的变化,简直就是做一场恶梦。

使用历史表进行跟踪

    关系数据库是存储数据的首选,可以高效地组织、存储、检索数据信息,由于应用程序将数据存放在关系数据库中,当然就顺理成章的尝试用它来存放历史跟踪数据,一般是使用带有时间戳的数据表来存放所有的重要数据表。在更新主表的时候会把旧数据推入历史表中,这个过程一般是通过触发器或由应用程序自己来完成。

使用历史表存储历史信息,会存在以下问题:
+关系型数据库和关系模型会提高数据存储和检索的效率,但是历史表显然不适合使用关系型数据库。
+数据库不支持版本控制。应用程序不得不使用触发器或其它定制的技术来仔细的存放数据(,以便实现版本控制功能)。
+必须由应用程序亲自检测版本之间的变化,从历史表中检索历史数据进行互相比较。

    关系数据库依旧是存储和检索业务数据的仓库,它们擅长于治理数据。以上列举的缺点仅限于用关系数据模型存储多个不同的版本的数据并进行历史数据跟踪的情况下。

Subversion 和 JavaSVN

    Subversion是一个可以代替CVS(一个传统的版本控制系统)的版本控制系统。Subversion使用称作仓库的树状结构来存储文件和目录。Subversion会跟踪对仓库中信息的所有改变,它具有一个中心仓库,答应进行并发更新,答应通过http或https使用WebDAV协议来访问仓库,可以避免使用过程中的防火墙的干扰。Subversion的理念就是“拷贝-编辑-合并”,这就意味着在修改时不需要锁定被修改的对象。

    (译者注:关于WebDAV,是Web-based Distributed Authoring and Versioning的缩写,是一个标准HTTP协议的扩展,通过web技术把目录和文件作为可读些的对象进行共享读写,把web变成一个可读写的媒体。RFCs2518和3253描述了WebDAV/DeltaV 对于HTTP的扩展,网址http://www.webdav.org/。)

    JavaSVN是一个纯Java的Subversion客户端类库,提供与Subversion交互的基于Java程序的应用程序接口(API), JavaSVN既提供了进行直接读取Subversion仓库的底层接口,也提供了从Subversion仓库检出工作拷贝的高层接口。

    现在,应用程序可以使用结合了关系型数据库和Subversion的方式来满足数据存储和变化跟踪的需求了,对数据库的更新同时会将变化情况提交到Subversion中,Subversion将是记录变化的主要数据源,关系数据库则用于除此以外所有的其他存储。这样做还有一个优势,由于Subversion使用“拷贝-编辑-合并”模式,这样每次从关系数据库中检索数据时不再要求锁定目标表了。

实例学习

    现在让我们来确定一下要解决的问题和解决方案,并使用实例来说明如何使用Subversion 和JavaSVN。我们使用JavaSVN将一个简单的领域对象存储到Subversion 中,检索以前的版本,并显示两个版本的差异。

我们示例的领域对象是以下所示的贷款数据。在本文结尾的“资源”部分有完整的源代码链接。

public class LoanData extends BaseTrackingObject {
        private String loanId;
        private double loanAmount;
        private float  loanRate;
        private int    loanTerm;
        ......
        ......
}


    在这里,使用抽象的BaseTrackingObject类来定义通用的跟踪数据,如修改用户、修改日期、修改原因等。其中定义了设置和取得objectId抽象方法,把它用作主键来访问领域对象;定义了一个命名为getXMLRepresentation的工具方法,用于把对象转换成XML格式,进而用于在Subversion中存储和检索数据。

初始化JavaSVN

    SVNManager类是通向Subversion的路由,用于在不使用工作拷贝的情况下,通过底层JavaSVN接口直接访问Subversion仓库,通过初始化JavaSVN类库来可以使用HTTP(S)或SVN(S)与Subversion仓库进行交互。在这里,我们选择使用HTTP (WebDAV),因为可以减少在处理防火墙方面的工作。

    库的初始化工作要首先调用的是方法DAVRepositoryFactory.setup()。SVNRepository类包含了所有直接访问Subversion仓库的方法,将Subversion仓库树状结构的根路径提供给SVNRepositoryFactory类后,就完成了这个类的初始化,而ISVNAuthenticationManager类的作用是向SVNRepository提供访问Subversion仓库的授权信息。
public void initRepository() {
        //initialize the system to work over http
        DAVRepositoryFactory.setup();
        ............
        //point to the root folder of repository
        SVNURL svnUrl = SVNURL.parseURIEncoded
                        ("http://localhost/repos/");
        //initialize the SVNRepository
        theRepository = SVNRepositoryFactory.
                        create(svnUrl);
        //Creates the Auth manager with our user
        //and passWord credentials
        ISVNAuthenticationManager authManager =
                new BasicAuthenticationManager
                (name, password);
        //provides the credentials to the
        //SVNRepository
        theManager.setAuthenticationManager
                (authManager);
        ........
}


上一篇:适合于Cygwin的JVM(java虚拟机)启动器 人气:519
下一篇:利用Ecipse生成Javadoc乱码解决方法 人气:978
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-13 金博人才招聘求职网黄金版 v4.2
2008-10-13 愚人笔记 v4.0
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成