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

集成 Spring Framework 和 Data Studio (三)

    博客分类:
  • J2EE
阅读更多

使用 pureQuery 和 Spring Framework

这一节首先展示如何使用 pureQuery 自动生成在前面小节中需要手动创建的代码,然后介绍如何将 Spring 支持添加到 pureQuery 应用程序。最后,将演示一个独特的 pureQuery 特性:静态绑定。

 

 

创建一个 pureQuery 应用程序

创建一个连接 DB2 示例数据库的数据库连接

启动 IBM Data Studio 之后,需要创建一个连接示例数据库的连接。

  1. 将 Database Explorer 视图添加到 Java 透视图。
    导航到 Window > Show View > Other >Data,然后选择 Database Explorer
  2. 创建一个连接到示例数据库的连接
    展开 Database Explorer 内部的 Connections 节点,如果能够看到示例数据库, 就可以进入下一步。否则,右键单击 Database Explorer 内部的 Connections 节点并选择 New Connections . . .
  3. 提供所需的信息,完成 New Connection 向导。

    图 6 展示了 New Connection 对话框。

 

创建一个带有 pureQuery 支持的 Java 项目

  1. 从菜单栏导航到 File > New > Project,然后选择 Java Project。输入 PQSpring 作为项目名称。跟前面一样,除非特别指定,否则一律使用默认值。单击 Finish 完成新项目的创建。
  2. 右键单击刚才创建的项目并选择 Add pureQuery Support . . . 。选择刚才创建的连接 --- Sample --- 作为现有的连接,然后单击 Finish 完成这个过程。

创建 pureQuery 代码

  1. 展开 Database Explorer 内部的示例数据库,查找 ATC 表,如图 7 所示。

  2. 右键单击 ACT table 并选择 Generate pureQuery Code …。在 Package 字段,输入 com.test,然后在 Name 字段输入 Account。选中 Generate annotated-method interface for tableGenerate test class for annotated-method interface for tableInclude connection information in test 复选框,如图 8 所示。



  3. 单击 Next 移动到 Bean Fields 对话框,然后选择 Next 再次导航到 SQL Statements 对话框。在这里,只需生成可以从 ACT 表选择所有行的方法,因此选择 Generate the SQL statements specified below 单选按钮,然后选择 Select all rows 复选框,如图 9 所示。



  4. 单击 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 所示。

  1. 右键单击 AccountDataTest.java > Run As > Run …
  2. 右键单击 Java Application > New
  3. 切换到 Arguments 选项卡并输入密码作为 Program 参数。现在,需要在 “YourPasswordHere” 字段为数据库输入您的个人专用密码。
  4. 应用并运行这个配置。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 支持添加到项目

  1. 根据“构建并运行应用程序”小节中的步骤,将 Spring 库添加到 PQSpring 项目。
    1. 右键单击 PQSpring 项目并选择 Build Path>Configure Build Path . . .
    2. 单击 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
  2. 来自 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()    );
    }
  }
}

 

分享到:
评论

相关推荐

    org.springframework.web-3.0.5.RELEASE.jar

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

    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才有...

    Spring-boot jar Spring-boot所需jar包

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

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

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

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

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

    [E文]Spring Boot 2 Recipes

    Spring Boot 2 支持各种集成,包括嵌入式 Tomcat、Jetty 和 Undertow 服务器,以及多种语言和工具支持。 #### Spring Boot 2 的特点: - **自动配置**:根据类路径中的 jar 文件自动配置 Spring。 - **启动器依赖*...

    SpringTools:Spring实践

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

    273-assignment2

    在本项目"273-assignment2"中,我们看到涉及了三个主要技术:Java、Spring Framework和AngularJS。这些都是IT行业中非常关键的组件,分别用于后端开发、企业级应用框架以及前端交互。让我们详细了解一下这三个技术...

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

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

    Spring-Game-Jam-Demo-thing

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

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

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

    三层图书管理系统.rar

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

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

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

    Java架构设计.pdf

    - 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...

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

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

    气球网站源代码

    三层架构是一种常见的软件设计模式,它将应用程序分为三个主要部分:表示层、业务逻辑层和数据访问层,以实现高内聚、低耦合的目标,提高代码的可维护性和可扩展性。 1. **表示层(Presentation Layer)**: 表示...

    MgOpenSourceDevGuide.pdf

    4. **设置开发工具**:选择合适的IDE(集成开发环境),如Visual Studio、Eclipse等,并配置好必要的插件或扩展。 #### 四、MapGuide 核心组件介绍 MapGuide的核心组件主要包括以下几个部分: 1. **MapGuide ...

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

    比如“Hive.Site.Service”可能包含了网站的核心服务类,“Hive.Component.Data”可能是数据访问层,处理与数据库的交互,“Hive.Site.WebService.Service”则可能是定义了Web服务的接口和实现。 4. **Hive.Core....

Global site tag (gtag.js) - Google Analytics