使用 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 数据访问代码非常直观,但在每次实现中都会出现一些重复的代码,比如获得连接或捕获异常的代码。还有可能出现函数调用结束时资源仍然占用的情况。
分享到:
相关推荐
此外,随3.0.5.RELEASE发布的`springframework-license.txt`文件包含了框架的许可信息,这表明Spring遵循Apache 2.0开源协议,鼓励开发者在遵守许可条款的情况下自由使用、修改和分发。 总结起来,Spring Web 3.0.5...
Spring Boot 基于 Spring Framework 和其他 Spring 家族项目构建,它内置了对许多常见技术的自动配置,如数据访问、安全、Web 服务等。 在“Spring-boot所需jar包”中,提到的 "springmvc.jar" 是 Spring MVC 的...
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才有...
**Spring Boot 2** 是基于流行的 Java 开发框架 Spring 的一个子项目,旨在简化新 Spring 应用程序的初始设置和开发过程。它通过提供默认配置来减少搭建项目的复杂性,并且能够快速启动和运行。Spring Boot 2 支持...
在Visual Studio 2008环境下开发,这个项目为我们展示了如何在ASP.NET应用中集成和利用Spring.NET的优势。 首先,"Solution1.sln"是Visual Studio的解决方案文件,包含了整个项目的所有组件和配置信息。打开这个...
1, DataAccess 数据访问层, 使用Ado.Net和Sql2005交互..数据访问层基本的Model, 单表基本操作存储过程, Dao代码可以由"动软代码生成工具修改版"生成 2, WebService 调用数据访问层, 提供Web层需要的数据. 使用...
SpringTools则进一步简化了Spring应用的开发流程,它集成了多种开发环境,如Eclipse、Visual Studio Code等,为开发者提供了代码智能提示、项目配置向导、Bean可视化编辑等功能。 在"SpringTools:Spring实践"这个...
本系统可能采用了Spring Boot,它是Spring Framework的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot默认配置了很多功能,如嵌入式Tomcat服务器、自动配置Spring等,使得开发者可以快速构建可...
9. **集成开发环境(IDE)**:开发者可能使用Eclipse、IntelliJ IDEA或Visual Studio Code等IDE来编写和调试代码。 10. **构建工具**:可能使用Maven或Gradle作为构建工具,管理项目依赖并自动化构建过程。 由于...
- JBoss Developer Studio是一个集成开发环境,支持JBoss和Eclipse技术。 - WebLogic、WebSphere和JBoss是流行的Java EE应用服务器。 9. 应用服务器与容器 - IOC(Inversion of Control)容器,如Spring和JBoss...
Spring Framework是Java开发中的一个核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)功能,简化了应用的构建和管理。在Spring中,开发者可以利用Spring MVC模块来创建RESTful API,与前端进行数据交换。 Spring...
该项目名为"Projeto_JavaSpringBootAndroidStudio_CSharpDesktop",它是一个综合性的软件开发项目,结合了多种技术栈,包括Java、Spring Boot、Android Studio和C#桌面应用。这个项目的目标是创建一个跨平台的应用...
ASP.NET是由微软公司推出的Web应用程序框架,它允许开发者使用.NET Framework构建动态网站、Web应用程序和服务。这个源码可能是用于学习、研究或者改进该公司网站的内部工作原理。 【描述】中提到的“asp.net vs...
开发者使用Java或Kotlin语言编写Android应用程序,这些应用程序可以在Android Studio集成开发环境中创建和测试。 3. **AWS (Amazon Web Services)**: AWS 是亚马逊提供的云服务集合,包括计算、存储、数据库、分析...
但在构建新闻发布系统时,可能会用到多种工具和技术,如Web服务器(Apache、Nginx)、开发框架(Spring、ASP.NET)、数据库管理系统(MySQL、Oracle)、版本控制系统(Git)、集成开发环境(IDE,如Visual Studio、...
描述中的“非常好的后台框架,实用并且好看,可以直接用于项目开发”提示我们这个项目可能使用了一种高效且美观的后台框架,可能是基于某种流行的Web开发技术,如ASP.NET、Java Spring或Node.js等。同时,它可能设计...
8. 开发框架与工具:如Spring框架在Java中的应用,或者.NET Framework在C#中的使用,以及如何配合IDE(如Eclipse、IntelliJ IDEA或Visual Studio)进行开发。 9. 数据库设计:包括关系型数据库如MySQL、Oracle,...
三层图书管理系统是一个典型的软件架构设计,它将应用分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种设计模式旨在提高系统的可维护...
常用组件是一些常用的组件和可复用API的集合,它包含了公共方法、异常处理,缓存、验证、全球化\本地化、动态类生成器、Data Context工厂、日志处理、事物处理、Spring.NET整合等等 扩展模型 扩展模型可以让你在...
Spring Framework也包括一系列子项目,如Spring Boot、Spring Data和Spring Security。 3. **Java代码**:Java代码是用Java编程语言编写的程序或指令集。它可以涵盖从简单的变量声明到复杂的算法和数据结构,是实现...