guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。
guzz主要功能与特点:
- 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
- 支持像hibernate一样的对象化持久、映射和方便的增删改查
- 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
- 支持应用程序使用大量的数据库和主从读写分离
- 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
- 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
- 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
- 支持组件化服务(SOA),构建企业/项目实施基础平台
- 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
- 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
FAQ:http://code.google.com/p/guzz/wiki/AboutFAQ
1.2.8 beta1更新介绍:
- 支持(JPA)annotation 。支持按照JPA规范的annotation进行对象映射声明,同时为了实现guzz特有的功能,对annotation进行了扩展。扩展方式与hibernate类似,如果看到与hibernate annotation名字相同的注解,含义和用法也基本相同。
- 修正了一个taglib bug 。修正了Guzz面向对象数据库操作标签无法处理包含运算符的特殊条件的错误。
应用示例说明:
通过annotation定义一个域对象:
- @javax.persistence.Entity
- @org.guzz.annotations.Entity(businessName = "comment")
- @Table(name="TB_COMMENT", shadow = CommentShadowView.class)
- @TableGenerator(
- name = "commentGen",
- table="tb_id",
- catalog="somelog",
- schema="some_schema",
- pkColumnName="pk",
- pkColumnValue="2",
- valueColumnName="id_count",
- initialValue=100,
- allocationSize=20
-
-
-
-
- )
- public class Comment {
-
- @javax.persistence.Id
- @GeneratedValue(generator="commentGen", strategy=GenerationType.TABLE)
- private int id ;
-
- private int userId ;
-
- private String userName ;
-
- @Column(name="DESCRIPTION")
- private String content ;
-
- private Date createdTime ;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public Date getCreatedTime() {
- return createdTime;
- }
-
- public void setCreatedTime(Date createdTime) {
- this.createdTime = createdTime;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public int getUserId() {
- return userId;
- }
-
- public void setUserId(int userId) {
- this.userId = userId;
- }
-
- }
完成id, userId, userName, content, createdTime的映射。
在guzz主配置文件中声明域对象定义:
- <a-business class="org.guzz.test.Comment"/>
更多介绍请参看使用手册:
Guzz Annotation使用帮助:http://code.google.com/p/guzz/wiki/TutorialHbmAnnotation
Guzz Annotation参考手册:http://code.google.com/p/guzz/wiki/AppendJPAAnnotation
下一版本计划:
- 改进remote service,提供更多内置的rpc协议支持。
- 其他。
|