使用 pureQuery 和 Spring Framework
这一节首先展示如何使用 pureQuery 自动生成在前面小节中需要手动创建的代码,然后介绍如何将 Spring 支持添加到 pureQuery 应用程序。最后,将演示一个独特的 pureQuery 特性:静态绑定。
创建一个 pureQuery 应用程序
创建一个连接 DB2 示例数据库的数据库连接
启动 IBM Data Studio 之后,需要创建一个连接示例数据库的连接。
- 将 Database Explorer 视图添加到 Java 透视图。
导航到 Window > Show View > Other >Data,然后选择 Database Explorer。
- 创建一个连接到示例数据库的连接
展开 Database Explorer 内部的 Connections 节点,如果能够看到示例数据库, 就可以进入下一步。否则,右键单击 Database Explorer 内部的 Connections 节点并选择 New Connections . . .
- 提供所需的信息,完成 New Connection 向导。
图 6 展示了 New Connection 对话框。
创建一个带有 pureQuery 支持的 Java 项目
- 从菜单栏导航到 File > New > Project,然后选择 Java Project。输入 PQSpring 作为项目名称。跟前面一样,除非特别指定,否则一律使用默认值。单击 Finish 完成新项目的创建。
- 右键单击刚才创建的项目并选择 Add pureQuery Support . . . 。选择刚才创建的连接 --- Sample --- 作为现有的连接,然后单击 Finish 完成这个过程。
创建 pureQuery 代码
- 展开 Database Explorer 内部的示例数据库,查找 ATC 表,如图 7 所示。
- 右键单击 ACT table 并选择 Generate pureQuery Code …。在 Package 字段,输入 com.test,然后在 Name 字段输入 Account。选中 Generate annotated-method interface for table、Generate test class for annotated-method interface for table 和 Include connection information in test 复选框,如图 8 所示。
- 单击 Next 移动到 Bean Fields 对话框,然后选择 Next 再次导航到 SQL Statements 对话框。在这里,只需生成可以从 ACT 表选择所有行的方法,因此选择 Generate the SQL statements specified below 单选按钮,然后选择 Select all rows 复选框,如图 9 所示。
- 单击 Finish 完成代码生成。现在,已经完成 pureQuery 应用程序,而且不需要编写任何代码。
生成的代码
下面的文件由以上的步骤自动地生成
- Account.java —— 保存来自 ACT 表的数据的 bean 类。
- AccountData.java —— 仅声明方法
getAccounts()
的接口。
- AccountDataTest.java —— 调用
getAccount()
方法的应用程序。
- AccountDataImpl.java —— 在 pureQuerysrc 文件夹下的 DAO 实现。这个文件实现在 AccountData 接口中定义的方法,并且由 pureQuery 生成器在每次更改接口时自动生成(如果开启 Project Menu 上的 “Build Automatically”)。
运行应用程序
自动生成的应用程序 AccountDataTest.java 需要一个数据库密码作为输入参数。因此,最好创建一个配置来运行这个应用程序,如图 10 所示。
- 右键单击 AccountDataTest.java > Run As > Run …
- 右键单击 Java Application > New
- 切换到 Arguments 选项卡并输入密码作为 Program 参数。现在,需要在 “YourPasswordHere” 字段为数据库输入您的个人专用密码。
- 应用并运行这个配置。ACT 表中的记录将显示在 Console 选项卡里面。
将 Spring 支持添加到 pureQuery 应用程序
pureQuery 和 Spring 集成工具箱简介
这个集成工具箱已经通过 Key MOD-415 提交到 Spring Module with Key MOD-415。就像工具箱本身所描述的一样:“这个特性需求的目标是能够将 pureQuery 和 Spring 结合使用,从而获得 Spring 的 Data 访问特性的优势,比如 Spring 事务管理、资源管理(连接)以及 Data Access Exception 层次结构”。
它包含 3 个文件:
- pureQuerySpring-samples.zip:带有文档的示例文件。
- pureQuerySpring_src.zip:源代码文件。
- spring-pdq.jar:运行时文件。
将 Spring 支持添加到项目
- 根据“构建并运行应用程序”小节中的步骤,将 Spring 库添加到 PQSpring 项目。
- 右键单击 PQSpring 项目并选择 Build Path>Configure Build Path . . .
- 单击 Libraries tab 并选择 Add External Jars,添加下面的 Spring 库。
- %Spring install%/dist/spring.jar
- %Spring install%/lib/jakarta-commons/commons-logging.jar
- %Spring install%/lib/jakarta-commons/commons-dbcp.jar
- %Spring install%/lib/jakarta-commons/commons-pool.jar
- 来自 pureQuery 和 Spring 集成工具箱的一个额外的库“spring-pdq.jar”也需要添加到构建路径。最后的项目应该类似于图 11。
Spring 配置文件
如 前面小节 所述,spring 配置文件 applicationContext.xml 和 jdbc.properties 需要添加到这个项目。在这种情况下,如果您使用相同的连接信息,则 jdbc.properties 就保持不变。需要更改 applicationContext.xml 中的 DAO 定义,表明这是新的 DAO 实现。同样,用一个 propertyConfigurer bean 来表明属性文件的位置。这样做的好处是 DBA 只需要更改属性文件以连接到其他数据源,而不需要更改应用程序本身。
清单 10 是 Spring 配置文件的一个示例,它使用了来自 pureQuery 和 Spring 集成工具箱的类。
清单 10. applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- replaces ${...} placeholders with values from properties files -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>jdbc.properties</value>
</list>
</property>
</bean>
<!-- Define datasource -->
<bean id="DB2DataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- Configure DAO -->
<bean id="ACT_DATA" class="java.lang.Class"
factory-method="forName">
<constructor-arg value="com.test.AccountData" />
</bean>
<bean id="ACT_DAO"
class="org.springmodules.purequery.PdqAnnotatedMethodFactory"
factory-method="getData">
<constructor-arg ref="ACT_DATA" />
<constructor-arg ref="DB2DataSource" />
</bean>
</beans>
应用程序
接下来将创建一个新的应用程序 SpringTest.java,并通过它加载 Spring 配置文件和调用 DAO 方法。将清单 11 中的代码添加到 com.test 包下的项目。
清单 11:SpringTest.java
package com.test;
import java.util.Iterator;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
//Load the configuratioin file
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml"});
//Get the DAO object
AccountData accountData = (AccountData)ac.getBean("ACT_DAO");
//Call the getAccounts() method
Iterator<Account> Acts = accountData.getAccounts();
//Print out the results
while (Acts.hasNext ()) {
Account o = Acts.next();
System.out.println("Act No=" + o.getActno() + " key="+o.getActkwd() + " desc="+
o.getActdesc() );
}
}
}
分享到:
相关推荐
此外,随3.0.5.RELEASE发布的`springframework-license.txt`文件包含了框架的许可信息,这表明Spring遵循Apache 2.0开源协议,鼓励开发者在遵守许可条款的情况下自由使用、修改和分发。 总结起来,Spring Web 3.0.5...
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 基于 Spring Framework 和其他 Spring 家族项目构建,它内置了对许多常见技术的自动配置,如数据访问、安全、Web 服务等。 在“Spring-boot所需jar包”中,提到的 "springmvc.jar" 是 Spring MVC 的...
1, DataAccess 数据访问层, 使用Ado.Net和Sql2005交互..数据访问层基本的Model, 单表基本操作存储过程, Dao代码可以由"动软代码生成工具修改版"生成 2, WebService 调用数据访问层, 提供Web层需要的数据. 使用...
在Visual Studio 2008环境下开发,这个项目为我们展示了如何在ASP.NET应用中集成和利用Spring.NET的优势。 首先,"Solution1.sln"是Visual Studio的解决方案文件,包含了整个项目的所有组件和配置信息。打开这个...
Spring Boot 2 支持各种集成,包括嵌入式 Tomcat、Jetty 和 Undertow 服务器,以及多种语言和工具支持。 #### Spring Boot 2 的特点: - **自动配置**:根据类路径中的 jar 文件自动配置 Spring。 - **启动器依赖*...
SpringTools则进一步简化了Spring应用的开发流程,它集成了多种开发环境,如Eclipse、Visual Studio Code等,为开发者提供了代码智能提示、项目配置向导、Bean可视化编辑等功能。 在"SpringTools:Spring实践"这个...
在本项目"273-assignment2"中,我们看到涉及了三个主要技术:Java、Spring Framework和AngularJS。这些都是IT行业中非常关键的组件,分别用于后端开发、企业级应用框架以及前端交互。让我们详细了解一下这三个技术...
该项目名为"Projeto_JavaSpringBootAndroidStudio_CSharpDesktop",它是一个综合性的软件开发项目,结合了多种技术栈,包括Java、Spring Boot、Android Studio和C#桌面应用。这个项目的目标是创建一个跨平台的应用...
9. **集成开发环境(IDE)**:开发者可能使用Eclipse、IntelliJ IDEA或Visual Studio Code等IDE来编写和调试代码。 10. **构建工具**:可能使用Maven或Gradle作为构建工具,管理项目依赖并自动化构建过程。 由于...
但在构建新闻发布系统时,可能会用到多种工具和技术,如Web服务器(Apache、Nginx)、开发框架(Spring、ASP.NET)、数据库管理系统(MySQL、Oracle)、版本控制系统(Git)、集成开发环境(IDE,如Visual Studio、...
三层图书管理系统是一个典型的软件架构设计,它将应用分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种设计模式旨在提高系统的可维护...
本系统可能采用了Spring Boot,它是Spring Framework的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot默认配置了很多功能,如嵌入式Tomcat服务器、自动配置Spring等,使得开发者可以快速构建可...
- JBoss Developer Studio是一个集成开发环境,支持JBoss和Eclipse技术。 - WebLogic、WebSphere和JBoss是流行的Java EE应用服务器。 9. 应用服务器与容器 - IOC(Inversion of Control)容器,如Spring和JBoss...
8. 开发框架与工具:如Spring框架在Java中的应用,或者.NET Framework在C#中的使用,以及如何配合IDE(如Eclipse、IntelliJ IDEA或Visual Studio)进行开发。 9. 数据库设计:包括关系型数据库如MySQL、Oracle,...
ASP.NET是由微软公司推出的Web应用程序框架,它允许开发者使用.NET Framework构建动态网站、Web应用程序和服务。这个源码可能是用于学习、研究或者改进该公司网站的内部工作原理。 【描述】中提到的“asp.net vs...
开发者使用Java或Kotlin语言编写Android应用程序,这些应用程序可以在Android Studio集成开发环境中创建和测试。 3. **AWS (Amazon Web Services)**: AWS 是亚马逊提供的云服务集合,包括计算、存储、数据库、分析...
三层架构是一种常见的软件设计模式,它将应用程序分为三个主要部分:表示层、业务逻辑层和数据访问层,以实现高内聚、低耦合的目标,提高代码的可维护性和可扩展性。 1. **表示层(Presentation Layer)**: 表示...
4. **设置开发工具**:选择合适的IDE(集成开发环境),如Visual Studio、Eclipse等,并配置好必要的插件或扩展。 #### 四、MapGuide 核心组件介绍 MapGuide的核心组件主要包括以下几个部分: 1. **MapGuide ...
比如“Hive.Site.Service”可能包含了网站的核心服务类,“Hive.Component.Data”可能是数据访问层,处理与数据库的交互,“Hive.Site.WebService.Service”则可能是定义了Web服务的接口和实现。 4. **Hive.Core....