guzz1.2.8 beta2发布--支持动态加载在线调试SQL
2014-05-07 11:22
302 查看
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),加快页面展示层的快速变更、开发与部署
支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
1.2.8 beta2更新介绍:
支持动态管理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优化和动态数据源。
改进远程服务设计:
增加对hessian, burlap协议的支持。目前guzz内置支持phprpc, hessian, burlap三种协议进行RPC远程调用。使用时,三种协议可以透明替换,类似spring对RMI类协议的封装
增加枚举类型与类型参数化支持:
按照TopLink的模式,支持JDK5 enum。Enum在使用时和普通类型一样,不需要实现特殊的接口(hibernate要求实现接口)。Enum支持通过JPA的Enumeration注释声明,也支持在hbm.xml中通过xml定义。
类型参数化为guzz的特殊功能,用于处理动态SQL参数和Jsp Taglib条件参数时,将String类型自动转换成需要的数据类型。参数化类型主要为日期和枚举
增加对数据库保留字的支持:
在定义数据库列名时,可以用`(ESC下面的键)将列名引起来,避免字段名称与数据库保留字冲突。此功能与hibernate提供的处理保留字方法相同,但guzz只支持字段,不支持`表名`。
增加对Microsoft SQL Server的支持(未测试):
参考hibernate实现了一个SQL Server 2000 & 2005的dialect,不支持分页。没有测试过。Dialect实现类:org.guzz.dialect.MSSQLDialect
下一版本计划:
修复发现的bug。
设计一些常见的服务,推广guzz基础服务理念。
guzz主要功能与特点:
现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
支持像hibernate一样的对象化持久、映射和方便的增删改查
支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL)
支持应用程序使用大量的数据库和主从读写分离
支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
支持组件化服务(SOA),构建企业/项目实施基础平台
提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
1.2.8 beta2更新介绍:
支持动态管理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优化和动态数据源。
改进远程服务设计:
增加对hessian, burlap协议的支持。目前guzz内置支持phprpc, hessian, burlap三种协议进行RPC远程调用。使用时,三种协议可以透明替换,类似spring对RMI类协议的封装
增加枚举类型与类型参数化支持:
按照TopLink的模式,支持JDK5 enum。Enum在使用时和普通类型一样,不需要实现特殊的接口(hibernate要求实现接口)。Enum支持通过JPA的Enumeration注释声明,也支持在hbm.xml中通过xml定义。
类型参数化为guzz的特殊功能,用于处理动态SQL参数和Jsp Taglib条件参数时,将String类型自动转换成需要的数据类型。参数化类型主要为日期和枚举
增加对数据库保留字的支持:
在定义数据库列名时,可以用`(ESC下面的键)将列名引起来,避免字段名称与数据库保留字冲突。此功能与hibernate提供的处理保留字方法相同,但guzz只支持字段,不支持`表名`。
增加对Microsoft SQL Server的支持(未测试):
参考hibernate实现了一个SQL Server 2000 & 2005的dialect,不支持分页。没有测试过。Dialect实现类:org.guzz.dialect.MSSQLDialect
下一版本计划:
修复发现的bug。
设计一些常见的服务,推广guzz基础服务理念。
相关文章推荐
- 多数据源的动态配置与加载使用兼框架交互的问题调试
- gdb调试动态加载模块
- Mybaits--使用log4j调试动态SQL语句
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 未处理InvalidOperationExcepton:对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成
- gdb远程调试--动态加载符号文件
- "对于不返回任何基表信息的 SelectCommand 不支持动态SQL生成"-奇怪的错误,不知道原因!
- 使用openlayers 3 在线加载天地图及GeoServer发布的地图
- ASP.NET网站开发--LINQ to SQL-动态数据支持
- 【原创】WINCE流驱动的动态加载调试
- 多数据源的动态配置与加载使用兼框架交互的问题调试
- 对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成
- 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇9、动态影像服务发布
- 对于“不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成”问题的解决
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
- spring+mybatis配置多数据源总结,重点是动态加载数据源,支持动态切换
- ASP.NET网站开发——LINQ TO SQL 动态数据支持
- “此服务器版本不受支持。必须安装Microsoft Sql sever 2005 Beta2或更高版本”
- 对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成
- FireBug,Chrome调试工具,动态加载jQuery库或其他库代码