阅读更多

6顶
0踩

开源软件

原创新闻 guzz 1.3.1 发布,优秀的 Java ORM 框架

2012-07-17 15:41 by 正式记者 myreligion 评论(17) 有13736人浏览
guzz 1.3.1 20120712更新介绍:

大版本更新噢:

1. 动态拼接SQL终于发布啦,等的花都谢了。现在,你可以写一个有条件的sql语句,然后在执行时,guzz会根据传入的参数构造成真正需要的sql语句,然后再绑定参数执行。guzz默认是基于Velocity模板实现的,于是动态SQL拼接的语法、灵活性、易用性、学习成本是绝对足够的,velocity文档也是绝对的丰富和成熟。来仔细瞧瞧吧:http://code.google.com/p/guzz/wiki/TutorialTemplatedSQLService?wl=zh-Hans

2. 受够了一个一个的添加域对象到guzz.xml中?是解放自己的时候啦。面对着大半年来的各种诉求,1.3.1版这次终于良心发现,增加了package-scan功能。咱们也可以扫描文件并批量添加business啦。看这里:http://code.google.com/p/guzz/wiki/TutorialHbmPackageScan?wl=zh-Hans

3. 在SQL中写时间串就报错? 虽然是小功能,但转义字符支持这次还是放出来啦。不害怕SQL注入,一门心思拼接SQL语句的孩纸们请看这里:http://code.google.com/p/guzz/wiki/TutorialGuzzXml?wl=zh-Hans#sql语句中特殊字符转义

4. JDNI数据源这次也支持啦。感谢波波提供的代码。借机也感谢波波提供的其他代码。http://code.google.com/p/guzz/wiki/TutorialDatasourceProvider?wl=zh-Hans#guzz内置连接池实现

5. 其他小功能和bug修正,就不废话了。你有兴趣就自己去对比SVN代码吧。

什么是guzz?

guzz是一套用于多数据库编程的Java ORM框架,用于替代hibernate和ibatis,实现在一套系统中轻松使用多台数据库。guzz同时提供通用数据计算和配置管理等,简化系统复杂度,为系统在数据层的设计提供一站式解决方案。

guzz主要功能与特点:

  • 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
  • 支持应用程序使用大量的数据库和主从读写分离
  • 支持数据库表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
  • 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
  • 支持1张大表分切后的小表,分布到不同的数据库中(VirtualDB)
  • 支持超越范式的特殊关联、非结构化数据等异构资源POJO模式的统一读取
  • 支持组件化服务(SOA)和服务相互依赖,构建企业/项目实施基础平台
  • 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
  • 对于大部分场景,支持像hibernate一样的对象持久、映射和方便的增删改查,提高开发效率
  • 对于复杂场景,支持像ibatis一样,让DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试
  • 更简洁、更好用、更容易控制的批操作接口
  • 支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL)
  • 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/AboutGuzz?tm=6
下载:http://code.google.com/p/guzz/downloads/list
新浪微博:http://weibo.com/guzzframework
扣扣群: 36429094  218658794
Mail List:https://lists.sourceforge.net/lists/listinfo/guzz-mail-users
6
0
评论 共 17 条 请登录后发表评论
17 楼 finallygo 2012-07-20 23:20
vlinux 写道
finallygo 写道
vlinux 写道
finallygo 写道
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了


不是的,dba丢给你一堆让db挂住的sql,但是如果这堆sql不是你亲自写的,你根本就不知道对应的业务,更无从下手优化。

呃....每个人负责的应用都是独立的数据库吧...,即使不是独立的mysql实例,至少数据库名是独立的吧,而且DBA可能只是把sql发给你们团队的负责人,之后他再找到相应的人的...为什么会是一堆的sql呢,DBA可以找出具体是哪句sql语句导致查询缓慢的吧....


恩,请华丽的忽略我一堆这个虚的量词~偶想说的是,dba的确是有可能找到是那个sql造的孽,只不过这条sql对应那个应用,如果这条sql是动态拼成的,那想要这个应用TL一时间找出来还真心困难。尤其是面对万能SQL的场景,更是吐血。

呃...这可能是企业应用和互联网应用的区别吧,总之,我们是不会出现什么复杂的查询的,也不允许使用关联查询...但是即使是你说的情况,关联的表还是能找到吧,找到关联的表就可以知道谁负责了呀...如果说你们随便可以使用别人的表也可以不记录的话,那我就没有什么好说的了...
16 楼 myreligion 2012-07-19 12:29
dyllove98 写道
xiaopie 写道
这些框架吧,就是写花架子。即提高不了工作效率也不利于调优。 做些小项目用用还可以。其他就别用了。

真正商用起来就bug 频发而且不稳定.

你用过嘛?没用过就不要以实际用户的口气发评论。
15 楼 vlinux 2012-07-19 00:03
finallygo 写道
vlinux 写道
finallygo 写道
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了


不是的,dba丢给你一堆让db挂住的sql,但是如果这堆sql不是你亲自写的,你根本就不知道对应的业务,更无从下手优化。

呃....每个人负责的应用都是独立的数据库吧...,即使不是独立的mysql实例,至少数据库名是独立的吧,而且DBA可能只是把sql发给你们团队的负责人,之后他再找到相应的人的...为什么会是一堆的sql呢,DBA可以找出具体是哪句sql语句导致查询缓慢的吧....


恩,请华丽的忽略我一堆这个虚的量词~偶想说的是,dba的确是有可能找到是那个sql造的孽,只不过这条sql对应那个应用,如果这条sql是动态拼成的,那想要这个应用TL一时间找出来还真心困难。尤其是面对万能SQL的场景,更是吐血。
14 楼 finallygo 2012-07-19 00:03
vlinux 写道
finallygo 写道
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了


不是的,dba丢给你一堆让db挂住的sql,但是如果这堆sql不是你亲自写的,你根本就不知道对应的业务,更无从下手优化。

而且我们的DBA有提供一些系统支持的,每周都会统计出查询缓慢的sql让我们开发人员去看,然后进行改进...
13 楼 finallygo 2012-07-18 23:59
vlinux 写道
finallygo 写道
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了


不是的,dba丢给你一堆让db挂住的sql,但是如果这堆sql不是你亲自写的,你根本就不知道对应的业务,更无从下手优化。

呃....每个人负责的应用都是独立的数据库吧...,即使不是独立的mysql实例,至少数据库名是独立的吧,而且DBA可能只是把sql发给你们团队的负责人,之后他再找到相应的人的...为什么会是一堆的sql呢,DBA可以找出具体是哪句sql语句导致查询缓慢的吧....
12 楼 vlinux 2012-07-18 22:26
finallygo 写道
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了


不是的,dba丢给你一堆让db挂住的sql,但是如果这堆sql不是你亲自写的,你根本就不知道对应的业务,更无从下手优化。
11 楼 finallygo 2012-07-18 22:19
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

实际的开发中DBA根本不会看你项目中的代码的,直接看slow sql日志就好了
10 楼 dyllove98 2012-07-18 17:51
xiaopie 写道
这些框架吧,就是写花架子。即提高不了工作效率也不利于调优。 做些小项目用用还可以。其他就别用了。

真正商用起来就bug 频发而且不稳定.
9 楼 gxz1989611 2012-07-18 14:11
有时间玩玩看~貌似有点意思
8 楼 lost_alien 2012-07-18 11:17
与ibatis和hibernate比,优势在哪儿?
7 楼 iceblooded 2012-07-18 10:50
开发团队是哪里的?中国的还是国外的?
6 楼 paggywong 2012-07-18 10:48
支持一下!用Guzz确实给项目带了便利。看到这个开源项目正在发生一些可喜的变化,赞
5 楼 tedeum 2012-07-18 10:18
和hibernate有什么区别和优势
4 楼 myreligion 2012-07-18 08:25
xiaopie 写道
这些框架吧,就是写花架子。即提高不了工作效率也不利于调优。 做些小项目用用还可以。其他就别用了。

不了解就不要发表观点。
3 楼 xiaopie 2012-07-18 08:20
这些框架吧,就是写花架子。即提高不了工作效率也不利于调优。 做些小项目用用还可以。其他就别用了。
2 楼 myreligion 2012-07-18 08:15
vlinux 写道
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。


没有屏蔽啊。DBA现在更加容易的介入,像ibatis一样,sql可以写到配置文件中的。
1 楼 vlinux 2012-07-17 19:16
真心觉得吧,如果你屏蔽了编写SQL那一环节,一旦遇到DB性能问题,DBA根本无法和一线开发人员沟通。。。

发表评论

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

相关推荐

  • 【数据库06】web应用程序开发的任督二脉

    应用程序性能 7.1 高速缓存 7.2 并行处理 8.应用程序安全性 8.2 SQL注入 8.2 跨站点脚本和请求伪造 8.3 密码泄露 8.4 应用级认证 8.5 应用级授权 8.6 审计追踪 8.7 隐私 9.加密及其应用 9.1 加密技术 9.2 数据库中的...

  • 适用于更具弹性的应用程序的现代配方

    Kubernetes , Docker和微服务就是现在创建新应用程序软件的方式。 对于新的应用程序,通常在您的前端与移动应用程序的后端的请求层之间有一个图形 。 但是,此后,仍然存在一个Web circa-2007请求,该请求通过数个...

  • apache shiro_Apache Shiro的应用程序安全性

    将Apache Shiro和Java EE 7配对-了解如何在JavaEE7应用程序中使用Shiro以及如何在Web应用程序中使用Shiro。 下载免费的gudeide。 尝试保护应用程序安全时,您感到沮丧吗? 您是否认为现有的Java安全解决...

  • shiro保护你的应用程序

    Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,[color=red][b]提供了认证、授权、加密和会话管理功能[/b][/color],可为任何应用提供安全保障 - 从命令行应用、...

  • 客户端架构

    除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。 架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构是一系列...

  • 《Java并发编程实战》【第二部分 结构化并发应用程序】

    任务执行6.1 在线程中执行任务6.1.1 串行的执行任务6.1.2 显式地为任务创建线程6.1.3 无限制创建线程的不足6.2 Executor框架6.3 线程池第7章 取消与关闭第8章 线程池的使用第9章 图形用户界面应用程序 第6章 任务...

  • Java Web 应用程序转换为 ASP.NET

    JavaWeb应用程序转换为ASP.NET BrianJimerson 本文讨论: ·资源定位 ·I/O流 ·日志记录和集合 ·重构 本文使用了以下技术:ASP.NET、JLCA和C# 下载本文中所用的代码:JLCA2007_05.exe...

  • 弹性盒布局适用场景_适用于更具弹性的应用程序的现代配方

    弹性盒布局适用场景 Kubernetes , Docker和微服务就是现在创建新应用程序软件的方式。 对于新应用程序,通常在您的前端与移动应用程序的后端的请求层之间有一个图形 。 但是,在那之后,仍然存在一个Web circa-2007...

  • 使用 JLCA 将 Java Web 应用程序转换为 ASP.NET

    FW: http://msdn.microsoft.com/msdnmag/issues/07/05/Migration/Default.aspx?loc=zh迁移使用 JLCA 将 Java Web 应用程序转换为 ASP.NET Brian Jimerson

  • javaswing界面设计教程,月薪30K

    两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中的 Math.round(-1.5) 等于多少? String 属于基础的数据类型吗? java 中操作字符串都有哪些类?它们之间有什么...

  • .NET在国内外应用的具体实例

    1.概述1.1 应用场景从平台...基本上感觉不出来CLR启动和加载程序集的明显延迟,而不管用AWT,Swing还是SWT,JVM启动和加载类库的延迟是非常明显的,因此 .NET CLR的运行效率比JVM高。 从企业开发的角度上讲,C#需要SQ

  • 牛逼!Java 从入门到精通,超全汇总版

    书中涉及的 Swing 图形化接口和 GUI 这部分可以不用学习,或者作为简单了解,因为现在几乎很少有人 拿 Swing 开发桌面化程序。 这本书可以说是非常适合小白的一本了,零基础就可以看,Head First 系列的书籍一般都...

  • Swing线程的最后讨论 -- 利用异步模型

    本文并不属于任何系列,但它是The Swing Connection中发表的第三篇关于在Swing中使用线程的文章。第一篇文章《线程与Swing》,解释了Swing的单线程规则。这篇文章现在可以在The Swing Connection Archive找到。第二...

  • Apache Shiro的(what、why、who)保护你的应用程序

    本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目标、架构理念以及如何使用Shiro为应用安全保驾护航。 什么是Apache Sh

  • 让Apache Shiro保护你的应用

    本文介绍的Apache Shiro,是一个不同寻常的Java安全框架,为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目标、架构理念以及如何使用Shiro为应用安全保驾护航。 什么是Apache Shiro? ...

  • 【JavaWeb 专题】15个最经典的JavaWeb面试题

    application域:整个web应用,代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。 session 和 cookie 有什么区别? 定义 session:是一种将...

  • Gromacs中文手册5.0.2.pdf

    Gromacs中文手册5.0.2

  • tensorflow_transform-0.1.0-py2-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • tensorflow_recommenders-0.3.1-py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • python冒泡排序(Bubble Sort).docx

    python冒泡排序(Bubble Sort) 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 以下是一个用Python实现的冒泡排序的例子: ```python def bubble_sort(lst): n = len(lst) for i in range(n): # 创建一个标记,用于优化 swapped = False # 遍历所有未排序的元素 for j in range(0, n-i-1): # 交换相邻元素,如果它们的顺序错误 if lst[j] > lst[j+1] : lst[j], lst[j+1] = lst[j+1], lst[j] swapped = True # 如果在内循环中没有交换

Global site tag (gtag.js) - Google Analytics