在本教程中,我们将手把手的演示如何使用guzz,编写一个可以并行使用5台甚至更多数据库的留言板系统。
您可以一边看一边跟着做。在实际的教程做,只需要1台数据库用来模拟。
本教程将教会你:如何创建guzz项目,如何用guzz添加数据库记录,如何实现读写分离,如何进行多数据库之间分表、切表、分布式切表等,并对“服务”有个概念。
什么是guzz?什么时候用?
guzz[ˈɡuzi]念做谷子。稻谷的谷,意为种子、谷物等。
guzz和hibernate,ibatis同属于数据持久层框架,在应用架构上用于代替hibernate或者ibatis。使用guzz后,传统的ssh(spring + struts + hibernate)程序就变成了ssg(spring + struts + guzz)。同时guzz也可以和hibernate/ibatis并存,同时使用。
guzz适合于大型系统使用,包括访问量较大的系统和数据量较大的系统。当你的程序需要同时使用多台数据库,或者存在大表需要分切成小表时,guzz是目前通用持久层框架中最好的选择。guzz提供了面向未来的配置化分表、多库、表分切、读写分离,以及多台数据库之间透明的分布式事务支持等特性,使得多数据库编程和普通编程一样简单,对开发者透明。
同时guzz提供一些服务定义,帮助团队从零开始创建云服务计算平台。如果您计划将多个系统间的通用计算(功能)做成服务,并且还没有动手,guzz service将是个很好的起步点。
guzz框架免费开源,项目地址:http://code.google.com/p/guzz/
准备开发环境
在本教程中,我们使用MyEclipse IDE做开发演示。留言板将运行在1台Mysql5.0 + 1台Tomcat6上。因此您只需要自己的开发机器就可以跟上。
当然,如果你有5台或者更多数据库,会更好。
虽然教程中只有1台数据库,但效果一样。你可以更清楚的看到,guzz使用多台数据库还是只用1台数据库,对开发者基本透明。
创建MessageBoard工程
我们基于 springIOC + springMVC + guzz 架构创建留言板,因此先从guzz网站下载提供的空工程 a empty sample project buildxxxxxxx.zip :http://code.google.com/p/guzz/downloads/list
解压工程,并导入到Eclipse中(File -> Import -> General/Existing Projects into Workspace)。 这时工作区中多了一个名为“GuzzEmpty”的项目。选择项目,右键 -> Refactor -> Rename。输入MessageBoard,确定。
从 http://code.google.com/p/guzz/downloads/list 下载最新版的guzz发布包,如“guzz1.2.9 buildxxxxxx.zip”,解压文件,将最新的guzz.jar覆盖到刚刚创建的MessageBoard工程的 /WebRoot/WEB-INF/lib/ 下。
修改 /WebRoot/WEB-INF/ 下的 fms.properties 为 messageBoard.properties ,这个为我们的主配置文件。
配置工程,插入第1条留言
配置工程
我们定义留言为Message,在src源代码目录下创建域对象example/business/Message.java:
1 package example.business; 2 3 import java.util.Date; 4 5 public class Message implements java.io.Serializable { 6 7 private int id ; 8 9 private String content ; 10 11 private Date createdTime ; 12 13 public int getId() { 14 return id; 15 } 16 17 public void setId(int id) { 18 this.id = id; 19 } 20 21 public String getContent() { 22 return content; 23 } 24 25 public void setContent(String content) { 26 this.content = content; 27 } 28 29 public Date getCreatedTime() { 30 return createdTime; 31 } 32 33 public void setCreatedTime(Date createdTime) { 34 this.createdTime = createdTime; 35 } 36 37 }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/125562.html