阅读更多

16顶
2踩

企业架构

原创新闻 guzz1.2.8 正式版发布--支持注解与动态SQL

2010-06-21 10:06 by 正式记者 myreligion 评论(9) 有7015人浏览
SQL

guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。

guzz主要功能与特点:
  • 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
  • 支持像hibernate一样的对象化持久、映射和方便的增删改查
  • 支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
  • 支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL)
  • 支持应用程序使用大量的数据库和主从读写分离
  • 支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
  • 支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
  • 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
  • 支持组件化服务(SOA),构建企业/项目实施基础平台
  • 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
  • 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
下载:http://code.google.com/p/guzz/downloads/list

1.2.8 更新介绍:

支持(JPA)annotation

支持按照JPA规范的annotation进行对象映射声明,同时为了实现guzz特有的功能,对annotation进行了扩展。扩展方式与hibernate类似,如果看到与hibernate annotation名字相同的注解,含义和用法也基本相同。

更多介绍请参看使用手册:
Guzz Annotation使用帮助:http://code.google.com/p/guzz/wiki/TutorialHbmAnnotation

Guzz Annotation参考手册:http://code.google.com/p/guzz/wiki/AppendJPAAnnotation

支持动态管理SQL:

动态SQL(Dynamic SQL)不是指应用程序动态的拼接SQL语句,动态SQL是指应用程序可以动态的获取配置好的SQL语句。在获取的过程中,SQL语句如何管理,由应用系统自身决定。

换句话说,在ibatis中,SQL语句配置到ibatis.xml文件中,在guzz中,配置到guzz.xml中。但当配置完成后,在系统运行期间这些SQL都是不能变动的,如果需要添加1个或者修改优化1个SQL语句,必须重启应用才能生效。而动态SQL允许应用系统动态的管理(添加/修改/优化/删除)sql语句以及查询结果到对象的映射关系(ORM),对于SQL的变更不再需要重启应用系统,以简化维护与应对需求变化。

动态SQL主要有两种应用场景:SQL优化和动态数据源。具体介绍请参看:http://code.google.com/p/guzz/wiki/TutorialDynamicSQLService

使用动态SQL的应用设计架构参考:http://guzz.iteye.com/blog/675955

改进远程服务设计:

增加对hessian, burlap协议的支持。目前guzz内置支持phprpc, hessian, burlap三种协议进行RPC远程调用。使用时,三种协议可以透明替换,类似spring对RMI类协议的封装。具体介绍请参看:http://code.google.com/p/guzz/wiki/TutorialFutureService

增加枚举类型与类型参数化支持:

按照TopLink的模式,支持JDK5 enum。Enum在使用时和普通类型一样,不需要实现特殊的接口(hibernate要求实现接口)。Enum支持通过JPA的Enumeration注释声明,也支持在hbm.xml中通过xml定义。通过xml的定义方式参看:http://code.google.com/p/guzz/wiki/TutorialHbmXml

类型参数化为guzz的特殊功能,用于处理动态SQL参数和Jsp Taglib条件参数时,将String类型自动转换成需要的数据类型。参数化类型主要为日期和枚举。详细介绍:http://code.google.com/p/guzz/wiki/TutorialHbmXml

增加对数据库保留字的支持:

在定义数据库列名时,可以用`(ESC下面的键)将列名引起来,避免字段名称与数据库保留字冲突。此功能与hibernate提供的处理保留字方法相同,但guzz只支持字段,不支持`表名`。

增加对Microsoft SQL Server的支持(未测试):

参考hibernate实现了一个SQL Server 2000 & 2005的dialect,不支持分页。没有测试过。Dialect实现类:org.guzz.dialect.MSSQLDialect

Guzz已经能够支持的数据库和数据类型请参看:
http://code.google.com/p/guzz/wiki/TutorialGuzzXml

其他:

1. 文档进行了大范围的补充和更新;

2. 修复了所有已经发现的bug。

下一版本计划:

  • 增加对spring事务的兼容。
  • 设计一些常见的服务,推广guzz基础服务理念。

16
2
评论 共 9 条 请登录后发表评论
9 楼 tedeyang 2010-06-22 23:21
有shard是个好东西。
8 楼 masuweng 2010-06-22 16:46
[/color][color=yellow]
引用

    [*]
[img][/img][url][/url][size=x-small][/size][align=right][/align]
7 楼 myreligion 2010-06-22 10:42
LSQ6063 写道
具体没用过,请问支持JNDI吗?

可以将JNDI中的连接池作为数据源,不过没有实现。没有测试环境。实现也非常简单,JDNI当作自定义连接池提供者实现一个接口即可。
6 楼 LSQ6063 2010-06-22 09:15
具体没用过,请问支持JNDI吗?
5 楼 myreligion 2010-06-21 15:24
wendal 写道
不错嘛

越来越强大了 

不过, 应该是我资历尚浅,还没能看出Guzz的实用价值,

至少不是重复的轮子,有自己的特色。有自己的东西,就有其他框架无法代替的业务价值。
4 楼 yefei 2010-06-21 14:42
wendal 写道
不错嘛

越来越强大了 

不过, 应该是我资历尚浅,还没能看出Guzz的实用价值,

那就别乱评论,免得误导大众
3 楼 jbon 2010-06-21 14:15
看起来不错,不知道实用效果如何?
有用的没,出来说说
2 楼 wendal 2010-06-21 13:54
不错嘛

越来越强大了 

不过, 应该是我资历尚浅,还没能看出Guzz的实用价值,
1 楼 zozoh 2010-06-21 12:04
消灭 0 回复 

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • guzz的「Guzz」-crx插件

    为Guzz启用屏幕共享。 此扩展程序允许www.guzz.io用户共享桌面屏幕 支持语言:English

  • mysql注解查询动态sql_数据层框架guzz1.2.8 正式版发布 支持注解与动态SQL

    guzz是一套用来解决ORM、... guzz主要功能与特点: 现代大规模系统设计,技术上吸收了ibatis/hiberguzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。...

  • guzz1.2.8 beta2发布--支持动态加载在线调试SQL

    guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。 guz...

  • Guzz-crx插件

    语言:English 为Guzz启用屏幕共享 此扩展程序允许www.guzz.io用户共享桌面屏幕

  • php-sdk:用于连接到MultiSafepay REST API的默认PHP库

    MultiSafepay PHP SDK关于...如果您没有安装任何客户端实现,请使用以下命令: composer require guzzlehttp/guzzle如果您没有安装任何工厂实现,请使用以下命令: composer require http-interop/http-factory-guzz

  • Guzz源码分析(四) guzz加载config-server信息

    1. 感觉有点懒惰了,两天没有写了,今天继续分析guzz加载config-server信息,说直接点就是解析guzz.xml中config-server配置的properties   <config-server> <server class="org.guzz...

  • guzz1.2.8 beta1基本就绪,开始支持annotation~~

    终于支持(JPA的)annotation了。 编写与测试已经通过,线上运行也还行(没有伤筋动骨的改动)。 看到nutz发布了新版本,不争人气,等两天再发 :D 帮助这次全部放到了google的wiki上,不用2个网站一起捣腾...

  • 分布式设计很简单--guzz分布式切表功能正式发布

    今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。  对于...

  • 数据库分布式设计很简单--guzz分布式切表功能正式发布

    今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。   ...

  • guzz 1.3.0大版本发布,支持Spring事务

    Guzz Spring事务支持标准Spring事务的所有配置,除了嵌套事务和JTA。嵌套事务Hibernate也不支持,如果需要使用,请按照hack Hibernate的方式使用。事务的配置方法为Spring标准配置方式,只需要将transact...

  • guzz1.2.8 beta1核心测试覆盖率达60%

    coverage report: [img]http://dl.iteye.com/upload/attachment/244184/329b77f9-63c9-3c89-ad09-d10f5398c591.png[/img]

  • guzz初始化时配置文件装载与解析过程分析

    为什么80%的码农都做不了架构师?>>>   ...guzz程序的核心为GuzzContext对象,... jpa注解解析还会涉及到JPA2AnnotationsBuilder 转载于:https://my.oschina.net/webas/blog/108529

  • guzz开发jar

    guzz是一套用来进行快速开发和高性能网站设计的java框架,通过ORM、多数据源数据管理、以及通用数据处理,为系统在数据层的设计提供一站式解决方案。用于替代或者补充hibernate或ibatis,并提供更多的大型系统架构...

  • guzz的jar包

    guzz的jar包,工程下直接考过来的,可以直接使用

  • guzz: a empty sample project build20110323.zip

    guzz的学习需要用的练习代码,有一个例子。

  • polylearn-0.1.dev0-cp35-cp35m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

  • 基于Simulink的语音信号降噪与增强.docx

    基于Simulink的语音信号降噪与增强.docx

  • java资源Java条形码生成库 Barcode4J

    java资源Java条形码生成库 Barcode4J提取方式是百度网盘分享地址

  • pgmagick-0.7.5-cp27-cp27m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

Global site tag (gtag.js) - Google Analytics