`
SOULisy
  • 浏览: 25614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

集成 Spring Framework 和 Data Studio (一)

    博客分类:
  • J2EE
阅读更多

使用 Spring 创建 pureQuery 应用程序

pureQuery 是包含在 Data Studio 中的 IBM 新开发平台,用于开发 Java™ 数据库访问应用程序。它简单的 API 和集成工具不仅提高了数据访问开发人员的效率,还鼓励遵守编码最佳实践以获得更好的应用程序性能。Spring 是一个开源的 Java/J2EE 应用程序框架,它提供了更高级的数据访问特性,比如事务管理、资源管理以及 Data Access Object 层次结构。如果将它与 pureQuery 集成起来,将带来更简单的应用程序开发与维护体验。本教程引导您构建具有 Spring Framework 数据访问特性的 pureQuery 应用程序。

系统要求

本教程需要您安装以下产品:

  • 带有 SAMPLE 数据库的 IBM DB2 9.5 for Linux, UNIX and Windows
  • IBM Data Studio Developer V 1.1.x。也可以使用从网上下载的 IBM Data Studio 1.1.x,但它不支持将在最后一部分讲述的静态绑定
  • Spring Framework 2.0.x with Dependencies
  • IBM pureQuery 和 Spring 集成工具箱

IBM Data Studio v1.2 下载地址:http://www.ibm.com/developerworks/downloads/im/data/?S_TACT=105AGX52&S_CMP=DWCHINA

 

一个简单的 Java 数据访问应用程序

本小节展示如何在 Data Studio 内部创建一个 JDBC 应用程序,然后通过它访问示例 DB2 数据库中的帐户 “ACT” 表。它利用 DAO(Data Access Object)设计模式,在这种模式下,业务应用程序对接口而不是具体对象进行编码。因此,这实现了业务逻辑和数据访问的分离。

需要的 4 个文件:

  • 一个保存查询所返回数据的 bean 类,它代表帐户业务对象 —— Account.java
  • 声明应用程序可以调用的数据访问方法的 DAO(Data Access Object)接口 —— AccountData.java
  • 实现在 DAO 接口中定义的方法的 DAO 实现 —— AccountDao.java
  • 调用方法的应用程序 —— AccountApp.java

bean 类

bean 类有三个数据字段(actno、actkwd 和 actdesc),它们代表了来自 ACT 表的三个列。清单 1 展示了保存查询所返回数据的 bean 类,它代表帐户业务对象。

 


清单 1. Account.java

package com.test; public class Account { protected short actno; protected String actkwd; protected String actdesc; public Account () { super(); } public Account (short actno, String actkwd, String actdesc) { super(); this.actno = actno; this.actkwd = actkwd; this.actdesc = actdesc; } public short getActno() { return actno; } public void setActno(short actno ) { this.actno = actno; } public String getActkwd() { return actkwd; } public void setActkwd(String actkwd ) { this.actkwd = actkwd; } public String getActdesc() { return actdesc; } public void setActdesc(String actdesc ) { this.actdesc = actdesc; } }

 

 

DAO 接口

DAO 接口声明了可以通过应用程序调用的方法。在清单 2 所示的简单示例中只定义了一个方法 getAccounts(),这个方法可以获取所有来自 ACT 表的行。


清单 2. AccountData.java

package com.test; import java.util.List; public interface AccountData { public String sql = "SELECT * from act"; public List<Account> getAccounts(); }

DAO 实现

通过 DAO 实现可以实现在接口中声明的方法。在这个示例中,只有一个需要实现的方法 getAccounts(),但仍然需要添加模板 JDBC 代码,以:

  • 获得数据库连接
  • 捕获 SQL 异常
  • 遍历结果集
  • 清空资源,比如连接、语句或结果集

清单 3 展示了 getAccounts() 方法的 DAO 实现。


清单 3. AccountDao.java

package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class AccountDao implements AccountData{ public List<Account> getAccounts() { List<Account> actList = new ArrayList<Account>(); Account act = null; try{ Connection con = getConnection(); Statement st = con.createStatement(); ResultSet rs = st.executeQuery(sql); while (rs.next()){ act = new Account(rs.getShort("ACTNO"), rs.getString("ACTKWD"), rs.getString("ACTDESC") ); actList.add(act); } rs.close(); st.close(); con.close(); return actList; } catch (SQLException sqle){ throw new RuntimeException(sqle); } } private Connection getConnection() throws SQLException { String driver = "com.ibm.db2.jcc.DB2Driver"; String url = "jdbc:db2://localhost:50000/sample"; try{ Class.forName(driver); }catch(Exception e){ e.printStackTrace(); } // Replace USERNAME and PASSWORD with your own data Connection con = DriverManager.getConnection(url,"USERNAME","PASSWORD"); return con; } }

应用程序

应用程序首先实例化一个 DAO 对象,然后调用 getAccounts() 方法并将结果输出到控制台。清单 4 展示了在实例化 DAO 对象之后调用 getAccounts() 方法的应用程序。


清单 4. AccountApp.java

package com.test; import java.util.List; public class AccountApp { public static void main(String [] args) { AccountData accountData = new AccountDao(); List<Account> actList = accountData.getAccounts(); for (Account act : actList) System.out.println(" ACTNO=" + act.getActno() + " ACTKWD="+ act.getActkwd() + " ACTDESC="+act.getActdesc()); } }

虽然在 Data Studio 内部创建 Java 数据访问代码非常直观,但在每次实现中都会出现一些重复的代码,比如获得连接或捕获异常的代码。还有可能出现函数调用结束时资源仍然占用的情况。

评论

相关推荐

    org.springframework.web-3.0.5.RELEASE.jar

    此外,随3.0.5.RELEASE发布的`springframework-license.txt`文件包含了框架的许可信息,这表明Spring遵循Apache 2.0开源协议,鼓励开发者在遵守许可条款的情况下自由使用、修改和分发。 总结起来,Spring Web 3.0.5...

    Spring-boot jar Spring-boot所需jar包

    Spring Boot 基于 Spring Framework 和其他 Spring 家族项目构建,它内置了对许多常见技术的自动配置,如数据访问、安全、Web 服务等。 在“Spring-boot所需jar包”中,提到的 "springmvc.jar" 是 Spring MVC 的...

    asp.net_spring_nhibernate_oracle

    nhibernate-mapping.xsd,spring-aop-1.1.xsd,spring-database-1.3.xsd和你能知道所有的xsd格式的spring相关文件放入到C:\Program Files\Microsoft Visual Studio 10.0\Xml\Schemas(主要版本和路径),这样写xml才有...

    [E文]Spring Boot 2 Recipes

    **Spring Boot 2** 是基于流行的 Java 开发框架 Spring 的一个子项目,旨在简化新 Spring 应用程序的初始设置和开发过程。它通过提供默认配置来减少搭建项目的复杂性,并且能够快速启动和运行。Spring Boot 2 支持...

    达达ASP.NET企业信息管理系统(Spring.NET修改版) 源码_ Visual Studio2008 C#

    在Visual Studio 2008环境下开发,这个项目为我们展示了如何在ASP.NET应用中集成和利用Spring.NET的优势。 首先,"Solution1.sln"是Visual Studio的解决方案文件,包含了整个项目的所有组件和配置信息。打开这个...

    自己弄的三层框架Spring.net,Remoting

    1, DataAccess 数据访问层, 使用Ado.Net和Sql2005交互..数据访问层基本的Model, 单表基本操作存储过程, Dao代码可以由"动软代码生成工具修改版"生成 2, WebService 调用数据访问层, 提供Web层需要的数据. 使用...

    SpringTools:Spring实践

    SpringTools则进一步简化了Spring应用的开发流程,它集成了多种开发环境,如Eclipse、Visual Studio Code等,为开发者提供了代码智能提示、项目配置向导、Bean可视化编辑等功能。 在"SpringTools:Spring实践"这个...

    基于SpringMVC的网上求职招聘系统源码数据库.zip

    本系统可能采用了Spring Boot,它是Spring Framework的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot默认配置了很多功能,如嵌入式Tomcat服务器、自动配置Spring等,使得开发者可以快速构建可...

    Spring-Game-Jam-Demo-thing

    9. **集成开发环境(IDE)**:开发者可能使用Eclipse、IntelliJ IDEA或Visual Studio Code等IDE来编写和调试代码。 10. **构建工具**:可能使用Maven或Gradle作为构建工具,管理项目依赖并自动化构建过程。 由于...

    Java架构设计.pdf

    - JBoss Developer Studio是一个集成开发环境,支持JBoss和Eclipse技术。 - WebLogic、WebSphere和JBoss是流行的Java EE应用服务器。 9. 应用服务器与容器 - IOC(Inversion of Control)容器,如Spring和JBoss...

    273-assignment2

    Spring Framework是Java开发中的一个核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)功能,简化了应用的构建和管理。在Spring中,开发者可以利用Spring MVC模块来创建RESTful API,与前端进行数据交换。 Spring...

    Projeto_JavaSpringBootAndroidStudio_CSharpDesktop:Java(移动e Web服务其余部分)CShap Desktop

    该项目名为"Projeto_JavaSpringBootAndroidStudio_CSharpDesktop",它是一个综合性的软件开发项目,结合了多种技术栈,包括Java、Spring Boot、Android Studio和C#桌面应用。这个项目的目标是创建一个跨平台的应用...

    某公司网站 全站源码

    ASP.NET是由微软公司推出的Web应用程序框架,它允许开发者使用.NET Framework构建动态网站、Web应用程序和服务。这个源码可能是用于学习、研究或者改进该公司网站的内部工作原理。 【描述】中提到的“asp.net vs...

    Study:用于保存我所学内容的存储库

    开发者使用Java或Kotlin语言编写Android应用程序,这些应用程序可以在Android Studio集成开发环境中创建和测试。 3. **AWS (Amazon Web Services)**: AWS 是亚马逊提供的云服务集合,包括计算、存储、数据库、分析...

    新闻发布系统(三层架构,工厂模式)

    但在构建新闻发布系统时,可能会用到多种工具和技术,如Web服务器(Apache、Nginx)、开发框架(Spring、ASP.NET)、数据库管理系统(MySQL、Oracle)、版本控制系统(Git)、集成开发环境(IDE,如Visual Studio、...

    后台站点2015年3月14日.zip

    描述中的“非常好的后台框架,实用并且好看,可以直接用于项目开发”提示我们这个项目可能使用了一种高效且美观的后台框架,可能是基于某种流行的Web开发技术,如ASP.NET、Java Spring或Node.js等。同时,它可能设计...

    北大青鸟系统架构

    8. 开发框架与工具:如Spring框架在Java中的应用,或者.NET Framework在C#中的使用,以及如何配合IDE(如Eclipse、IntelliJ IDEA或Visual Studio)进行开发。 9. 数据库设计:包括关系型数据库如MySQL、Oracle,...

    三层图书管理系统.rar

    三层图书管理系统是一个典型的软件架构设计,它将应用分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种设计模式旨在提高系统的可维护...

    RapidWebDev框架源码

    常用组件是一些常用的组件和可复用API的集合,它包含了公共方法、异常处理,缓存、验证、全球化\本地化、动态类生成器、Data Context工厂、日志处理、事物处理、Spring.NET整合等等 扩展模型 扩展模型可以让你在...

    Technology-Stack-Icons

    Spring Framework也包括一系列子项目,如Spring Boot、Spring Data和Spring Security。 3. **Java代码**:Java代码是用Java编程语言编写的程序或指令集。它可以涵盖从简单的变量声明到复杂的算法和数据结构,是实现...

Global site tag (gtag.js) - Google Analytics