- 浏览: 96144 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (82)
- Groovy & Grails (13)
- 面向对象数据库db4o (2)
- CoreJava (17)
- AOP (3)
- Spring (3)
- Hibernate (1)
- JAVA安全认证 (0)
- DDD (1)
- 职场 (1)
- IT杂谈 (4)
- 技术实践日志 (7)
- SOA (5)
- js (2)
- Python (3)
- cluster (2)
- load balance (2)
- distributed architeture (2)
- English (1)
- Wicket Tapestry (1)
- architecture (1)
- concurrenct (1)
- color UML (1)
- disruptor (2)
- linux (3)
- REST (1)
- sql injection (1)
- UML (1)
- eclipse 实用插件 (1)
- data structure & algorithm (2)
- lisp python (2)
- lisp (4)
- compiler (2)
- interpreter (4)
最新评论
-
zhaohuaxishiwzw:
老贴留名!
Tapestry and Wicket compared -
flyqantas:
经典的好文章。
UML类图与类的关系详解 -
myemptyname:
好文章,不管你懂不懂,我是懂了
闭包,懂不懂由你,反正我是懂了 -
GuolinLee:
看进来可能对我有点儿用,但是格式太差,太难看了放弃
java.util.concurrent 多线程框架 -
lonelybug:
在JiveJdon3.0中,值对象ForumState是被聚合 ...
实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
实战 Groovy: 用 Groovy 进行 JDBC 编程用 GroovySql 构建下一个报告应用程序 |
级别: 初级 Andrew Glover (aglover@vanwardtechnologies.com), CTO, Vanward Technologies 2005 年 1 月 11 日 这个月,随着 Andrew Glover 向您演示如何用 GroovySql 构建简单的数据报告应用程序,您对 Groovy 的实用知识会更进一步。GroovySql 结合利用闭包(closure)和迭代器(iterator),把资源管理的负担转移到 Groovy 框架本身,从而简化了 Java 数据库连通性(Java Database Connectivity,JDBC)的编程。<!----><!----><!----> 在 实战 Groovy 系列的前几期中,您已经了解了 Groovy 的一些非常优美的特性。在 第 1 期 中,学习了如何用 Groovy 对普通的 Java™ 代码进行更简单、更迅速的单元测试。在 第 2 期 中,看到了 Groovy 能够给 Ant 构建带来的表现能力。这一次您会发现 Groovy 的另一个实际应用,即如何用它迅速地构建基于 SQL 的报告应用程序。 脚本语言对于迅速地构建报告应用程序来说是典型的优秀工具,但是构建这类应用程序对于 Groovy 来说特别容易。Groovy 轻量级的语法可以消除 Java 语言的 JDBC 的一些繁冗之处,但是它真正的威力来自闭包,闭包很优雅地把资源管理的责任从客户机转移到框架本身,因此更容易举重若轻。 在本月的文章中,我先从 GroovySql 的概述开始,然后通过构建一个简单的数据报告应用程序,向您演示如何将它们投入工作。为了从讨论中得到最大收获,您应当熟悉 Java 平台上的 JDBC 编程。您可能还想回顾 上个月对 Groovy 中闭包的介绍,因为它们在这里扮演了重要的角色。但是,本月关注的重点概念是迭代(iteration),因为迭代器在 Groovy 对 JDBC 的增强中扮演着重要角色。所以,我将从 Groovy 中迭代器的概述开始。 迭代是各种编程环境中最常见、最有用的技术。 迭代器 是某种代码助手,可以让您迅速地访问任何集合或容器中的数据,每次一个数据。Groovy 把迭代器变成隐含的,使用起来更简单,从而改善了 Java 语言的迭代器概念。在清单 1 中,您可以看到使用 Java 语言打印 清单 1. 普通 Java 代码中的迭代器
在清单 2 中,您可以看到 Groovy 如何简化了我的工作。在这里,我跳过了 清单 2. Groovy 中的迭代器
您可以看到,与典型的 Java 代码不同,Groovy 在允许我传递进我需要的行为的同时,控制了特定于迭代的代码。使用这个控制,Groovy 干净漂亮地把资源管理的责任从我手上转移到它自己身上。让 Groovy 负责资源管理是极为强大的。它还使编程工作更加容易,从而也就更迅速。
Groovy 的 SQL 魔力在于一个叫做 GroovySql 的精致的 API。使用闭包和迭代器,GroovySql 干净漂亮地把 JDBC 的资源管理职责从开发人员转移到 Groovy 框架。这么做之后,就消除了 JDBC 编程的繁琐,从而使您可以把注意力放在查询和查询结果上。 如果您忘记了普通的 Java JDBC 编程有多麻烦,我会很高兴提醒您!在清单 3 中,您可以看到用 Java 语言进行的一个简单的 JDBC 编程示例。 清单 3. 普通 Java 的 JDBC 编程
哇。清单 3 包含近 40 行代码,就是为了查看表中的内容!如果用 GroovySql,您猜要用多少行?如果您猜超过 10 行,那么您就错了。请看清单 4 中,Groovy 替我处理底层资源,从而非常漂亮地让我把注意力集中在手边的任务 —— 执行一个简单的查询。 清单 4. 欢迎使用 GroovySql!
真不错。只用了几行,我就编码出与清单 3 相同的行为,不用关闭
在 清单 4 的第一行中,我创建了 Groovy 的 请把 如果将等式中我指定的变量 清单 5. GroovySql 中的 it 变量
在这个代码中,我可以删除
前面的例子相当简单,但是 GroovySql 在处理更复杂的数据操纵查询(例如 在清单 6 中,您看到一个简单的 清单 6. 用 GroovySql 进行插入
Groovy 还提供 清单 7. 用 GroovySql 创建 PreparedStatement 的实例
更新的方式基本相同,也使用 清单 8. 用 GroovySql 进行更新
删除实际上与插入相同,当然,语法不同,如清单 9 所示。 清单 9. 用 GroovySql 进行删除
任何想简化 JDBC 编程的 API 或工具最好有一些好的数据操纵特性,在这一节中,我要向您再介绍三个。 构建于 GroovySql 简单性的基础之上,GroovySql 支持 但是,目前 GroovySql 清单 10. 用 GroovySql 创建数据集
您可以看到,GroovySql 的 存储过程调用和负索引(negative indexing)可能是数据操纵的重要方面。GroovySql 使存储过程调用简单得就像在 清单 11. 用 GroovySql 进行负索引
您在清单 11 中可以看到,提取结果集的最后一个元素非常容易,只要用 -1 作索引就可以。如果想试试,我也可以用索引 2 访问同一元素。 这些例子非常简单,但是它们能够让您很好地感觉到 GroovySql 的威力。我现在要用一个演示目前讨论的所有特性的实际例子来结束本月的课程。
报告应用程序通常要从数据库拖出信息。在典型的业务环境中,可能会要求您编写一个报告应用程序,通知销售团队当前的 Web 销售情况,或者让开发团队对系统某些方面(例如系统的数据库)的性能进行日常检测。 为了继续这个简单的例子,假设您刚刚部署了一个企业范围的 Web 应用程序。当然,因为您在编写代码时还(用 Groovy)编写了充足的单元测试,所以它运行得毫无问题;但是您还是需要生成有关数据库状态的报告,以便调优。您想知道客户是如何使用应用程序的,这样才能发现性能问题并解决问题。 通常,时间约束限制了您在这类应用程序中能够使用的提示信息的数量。但是您新得到的 GroovySql 知识可以让您轻而易举地完成这个应用程序,从而有时间添加更多您想要的特性。 在这个例子中,您的目标数据库是 MySQL,它恰好支持用查询发现状态信息这一概念。以下是您有兴趣的状态信息:
用 GroovySql 从 MySQL 数据库得到这个信息太容易了。由于您正在为开发团队构建状态信息,所以您可能只是从一个简单的命令行报告开始,但是您可以在后面的迭代中把报告放在 Web 上。这个报告例子的用例看起来可能像这样:
在清单 12 中,您可以看到最终结果:一个将会报告所需数据库统计信息的应用程序。代码开始的几行获得到生产数据库的连接,接着是一系列 清单 12. 用 GroovySql 进行数据库状态报告
在 实战 Groovy 本月的这一期文章中,您看到了 GroovySql 如何简化 JDBC 编程。这个干净漂亮的 API 把闭包和迭代器与 Groovy 轻松的语法结合在一起,有助于在 Java 平台上进行快速数据库应用程序开发。最强大的是,GroovySql 把资源管理任务从开发人员转移到底层的 Groovy 框架,这使您可以把精力集中在更加重要的查询和查询结果上。但是不要只记住我这句话。下次如果您被要求处理 JDBC 的麻烦事,那时可以试试小小的 GroovySql 魔力。然后给我发封电子邮件告诉我您的体会。 在 实战 Groovy 下一月的文章中,我要介绍 Groovy 模板框架的细节。您会发现,用这个更加聪明的框架创建应用程序的视图组件简直就是小菜一碟。
|
发表评论
-
Groovy用户指南(5)
2007-09-06 14:22 1064Groovy用户指南(5) 5、Groovy Math& ... -
Groovy用户指南(4)
2007-09-06 14:20 963Groovy用户指南(4) 4、与Java的不同< ... -
Groovy用户指南(3)
2007-09-06 14:20 1107Groovy用户指南(3) 3、集合<o:p> ... -
Grails + EJB领域模型教程
2007-09-06 14:15 1482Grails + EJB领域模型教程 作者 Jason Rud ... -
Java帝国的王储——Groovy !
2007-09-06 14:01 1074Java帝国的王储——Groovy ! 让我们来回顾一下主 ... -
Groovy用户指南(2)
2007-09-06 13:54 931Groovy用户指南(2) 2、闭包<o:p> ... -
Groovy用户指南(1)
2007-09-06 13:51 1101Groovy用户指南(1) 1、类<o:p> ... -
实战 Groovy: 用 Groovy 进行 Ant 脚本编程
2007-09-06 13:47 1245... -
Groovy和Grails简介
2007-09-06 13:46 1226Groovy和Grails简介 ... -
Groovy快速入门
2007-09-06 13:44 1061Groovy快速入门 1、 ... -
实战 Groovy: 使用 Groovy 模板进行 MVC 编程
2007-09-06 13:42 2097... -
使用Groovy IDE插件 (Groovy & Grails )
2007-09-06 13:36 2415使用Groovy IDE插件 1、 配置Groovy ...
相关推荐
### IBM实战Groovy知识点概览 #### 一、Groovy简介 **Groovy**是一种运行在Java平台上的灵活且强大的编程语言,它以其简洁、高效和面向对象的特点著称。Groovy是由James Strachan和Bob McWhirter创建的,并在2004年...
在Spring 3.x企业应用开发实战中,使用到的各种jar包是实现高效、灵活和可扩展的应用程序架构的关键。这些库提供了丰富的功能,包括依赖注入、面向切面编程、数据持久化、Web MVC以及与其他技术的集成。以下是这些...
总而言之,《Spring 3.x企业应用开发实战》是一本全面覆盖Spring 3.x核心特性的教程,对于希望提升Spring技能或者正在使用Spring进行开发的程序员来说,是一份不可多得的学习资料。通过深入学习,开发者不仅可以掌握...
1. Groovy配置:Groovy配置让开发者可以使用更加自然的语言风格进行配置,减少了XML的繁琐,提高了开发效率。 2. @Profile注解:该注解允许开发者根据运行环境(如开发、测试、生产)动态地选择加载哪些配置,增强...
- **布局管理**: 如何使用HBox、VBox等容器进行布局设计。 **LESSON19: Developing JavaFX Calculator and Tic-Tac-Toe** - **计算器开发**: 实现一个简单的JavaFX计算器应用。 - **Tic-Tac-Toe游戏**: 开发一个井...
3. **Groovy配置支持**:除了Java配置,3.0.5版本还支持使用Groovy进行配置,提供了更灵活的选择。 4. **WebSocket支持**:引入了对WebSocket协议的支持,适应了实时通信的需求。 5. **改进的MVC**:包括更好的...
Maven使用XML配置,Gradle则使用Groovy进行声明式构建。 12. **单元测试**:JUnit是Java的单元测试框架,通过编写测试用例确保代码的正确性。TDD(测试驱动开发)是一种常见的编程实践,鼓励先写测试再写代码。 13...
3. **动态语言支持**:通过JSR 223,Java 6引入了对脚本语言的支持,允许在Java程序中直接使用JavaScript、Groovy等语言。 4. **改进的编译器**:Javac编译器的性能得到提升,且支持注解处理器,可以自动生成源代码...
1. **Groovy配置支持**:在3.1版本中,Spring引入了对Groovy配置的支持,允许开发者使用更简洁、动态的语法编写配置文件,提高了开发效率。 2. **改进的类型安全的依赖注入**:Spring 3.1增强了类型安全的依赖注入...
- **Spring JDBC支持**:Spring为JDBC操作提供了一个抽象层,简化了数据库操作,并且可以方便地进行错误处理。 - **使用Hibernate集成Spring**:Hibernate是一个流行的ORM框架,Spring提供了与Hibernate无缝集成的...
安装完成后,配置JDBC驱动,以便连接到不同的数据库进行数据查询,这是创建动态报表的关键步骤。 三、报表设计基础 1. 报表元素:iReport提供多种元素,如文本框、表格、图表、图像、子报表等。理解这些元素的用途...
2. **更新的类库**:Java API进行了大量扩展,例如Swing组件的增强,增加了JDBC 4.0支持,提高了数据库连接的便捷性和稳定性。 3. **NIO.2(New I/O 2)**:引入了对异步I/O的支持,允许非阻塞的读写操作,提高了...
Spring Framework,作为Java开发中的核心框架,以其强大的依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)功能,极大地提升了企业级应用的开发效率。3.0.5.RELEASE版本是...
根据提供的文件信息,“Java 16年基础班+就业班教学视频”主要涵盖了Java编程的基础知识及面向就业的实际技能训练。接下来将详细解读并总结出该视频教程中的关键知识点。 ### 一、Java语言概述 #### 1. Java语言...
《Spring Mastering 5.x:深入理解与实战》 Spring框架是Java开发中的核心组件,尤其是在企业级应用中,Spring以其强大的功能和灵活性备受青睐。Spring 5.x版本更是集成了许多新特性和优化,旨在提升开发效率和应用...
【标题】"Web-Related-Examples" 涵盖了与Web开发相关的各种实例,主要集中在Java编程语言上。这个项目可能是一个集合,包含了不同类型的Web应用开发中的关键概念和技术的实战展示。以下是对这些知识点的详细说明: ...