Springside 中在orm这一层提供了ibatis的实现,可惜在例子中没有demo具体的用法。所以在这里简单demo一下在springside中使用ibatis的方法,运行效果如下:
(可能有人注意到这个列表不是使用ss中默认集成的extremetable,呵呵,没错,我用的是fins提供的ecside控件,关于在ss中使用ecside另外文章介绍)
<o:p> </o:p>
1. 创建新项目
关于从ss中创建一个项目,请参看ss的wiki: wiki.springside.org.cn,记得选择控件的时候选择orm/ibatis。
2. POJO
一个简单的叫做User的pojo,只包含一个id和一个username。
java 代码
- public class User {
-
- private Integer id;
- private String username;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
- }
3.Service层
一个继承自IBatisEntityDao的Manager,已经具有了list,save…等方法:
java 代码
- public class UserManager extends IBatisEntityDao<user></user> {
- }
4.Web层
同样是一个继承自的Action类,也没什么好说的:
java 代码
- public class UserAction extends StrutsEntityAction {
- private UserManager userManager;
-
- public void setUserManager(UserManager userManager) {
- this.userManager = userManager;
- }
- }
5.配置啊配置
重头戏来了,下面介绍ibatis需要的配置文件,以及这几个文件之间的关系。
(1) applicationContext-ibatis.xml
类似ss中演示hibernate时的配置文件dataAccessContext-hibernate.xml,配置数据源、sqlMapClient以及transactionManager。<o:p></o:p>
注意在sqlMapClient的配置中configLocation属性指明了SQL Map XML配置文件的位置信息,“SQL Map使用XML配置文件统一配置不同的属性,包括DataSource的详细配置信息,SQL Map和其他可选属性,如线程管理等。”(摘自《iBATIS SQL Maps开发指南》)。不过在本文中只配置了映射文件。
xml 代码
- <!---->xml version="1.0" encoding="UTF-8"?>
- >
- <beans default-autowire="byName" default-lazy-init="true">
-
- <bean id="dataSource" 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>
-
- <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
- <property name="configLocation" value="/WEB-INF/sql-map.xml" />
- <property name="dataSource" ref="dataSource"/>
- bean>
-
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource"><ref local="dataSource"/>property>
- bean>
-
- beans>
(2) sql-map.xml
正如在(1)中所说,本文件中只是说明了映射文件的位置,关于更多配置选项,请参考《iBATIS SQL Maps开发指南》。其中resource="ibatis/user.xml"中中的路径信息是相对classpath的。
xml 代码
- <!---->xml version="1.0" encoding="UTF-8" ?>
- >
- <sqlMapConfig>
- <sql-map resource="ibatis/user.xml" />
- sqlMapConfig>
(3) user.xml
终于到了最后一个配置文件了,这个文件就相当于hibernate的映射文件了,如下所示:
xml 代码
- <!---->xml version="1.0" encoding="UTF-8" ?>
- >
-
- <sqlMap namespace="user">
- <resultMap id="result" class="com.gpcgd.model.User">
- <result property="id" column="id" columnIndex="1"/>
- <result property="username" column="username" columnIndex="2"/>
- resultMap>
-
- <select id="com.gpcgd.model.User.select" resultMap="result">
- select t.id,t.username, from t_user t
- select>
- sqlMap>
resultMap指明了数据库和对象之间的映射关系,至于下面这段,需要解释一下
<o:p></o:p>
xml 代码
- <select id="com.gpcgd.model.User.select" resultMap="result">
- select t.id,t.username, from t_user t
- select>
首先是这个id,对应了dao接口中的调用参数,而返回值resultMap的值(resultMap="result")又对应了对象-数据库映射的resultMap的id(resultMap id="result")。
关于这个id="com.gpcgd.model.User.select",有必要说明一下。
我们知道,ss中Action类的list方法是调用Manager类的getAll()方法的。
在/ss2/core/src/java/org/springside/core/dao/IBatisGenericDao.java的源码中我们可以看到:
java 代码
-
-
-
- public <t></t> List<t></t> getAll(Class<t></t> entityClass) {
- return getSqlMapClientTemplate().queryForList(entityClass.getName() + POSTFIX_SELECT, null);
- }
其中entityClass.getName()=“com.gpcgd.model.User”,而POSTFIX_SELECT=“.select”。所以select的id要设置为:“com.gpcgd.model.User.select”。<o:p></o:p>
不知道能不能对“com.gpcgd.model.User.select”这种写法进行简化,如果哪位知道,请留言指正,谢谢!<o:p></o:p>
分享到:
- 2007-02-16 21:18
- 浏览 7367
- 评论(3)
- 论坛回复 / 浏览 (3 / 5716)
- 查看更多
相关推荐
在本文档中,我们将详细介绍如何使用Springside 3.3.4版本,并特别关注SSH(Spring + Struts + Hibernate)整合的方法。 #### 二、环境配置与准备 1. **安装Java JDK**: - 首先确保已经安装了Java环境,并且设置...
在介绍了常规模块之后,文档还专门提供了一节关于加密技术的章节,包括消息摘要和加密方法,以及如何在SpringSide中使用Crypto组件。 SpringSide还包含了一个定时任务的调度器,支持在Spring应用中进行定时任务的...
在 SpringSide3.0 中,项目模板存放在 `archetypes` 目录下。新生成的项目包含了基础的项目骨架,包括配置文件和示例代码,以便开发者能够快速启动开发工作。这使得项目在创建之初就具备了运行能力,减少了初期配置...
在SpringSide 2.0中,我们可以找到以下几个核心知识点: 1. **Spring框架**:Spring是Java企业级应用开发的核心框架,它提供了依赖注入、面向切面编程、数据访问、事务管理等多种功能。SpringSide 2.0紧密集成...
在 SpringSide3.3.4 中,我们可以使用 Spring Framework 的功能来开发 Web 应用程序。我们可以使用 Spring MVC 框架来开发控制器、视图和模型。我们还可以使用 Spring Security 来实现身份验证和授权。 SpringSide...
SpringSide 3.2.2 版本是一个成熟的版本,它在之前的版本基础上进行了优化和完善,为开发者提供了更稳定、更高效的支持。通过分析其源码,我们可以深入理解 SpringSide 的设计理念和实现方式,进一步提升我们的 Java...
本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一、SpringSide概述 SpringSide是一款为Java开发者设计的开源工具集,它提供了大量的最佳实践和示例代码,帮助开发者快速上手Spring...
在学习springside的过程中,首先需要理解Spring框架的基本原理,包括依赖注入、AOP、事务管理等核心概念。然后,深入学习springside各模块的功能及使用方法,如如何配置和启动项目,如何进行模块间的通信等。最后,...
本篇文章将深入探讨SpringSide 3.0中的关键知识点,帮助开发者更好地理解和使用这一强大的工具。 1. **Spring框架基础**:Spring是Java领域最著名的轻量级框架之一,它的核心特性包括依赖注入(DI)和面向切面编程...
本文将围绕springside4.2.3-GA.jar这个核心组件,探讨其在Java应用中的重要作用以及如何利用它提升开发效率。 首先,我们需要理解什么是.jar文件。.jar(Java Archive)是Java平台上的归档文件格式,用于集合多个类...
在深入理解SpringSide之前,我们首先需要了解Spring Framework,这是一个广泛使用的Java企业级应用开发框架,它为开发者提供了诸如依赖注入、面向切面编程、数据访问、事务管理等核心功能。 SpringSide项目的核心...
在SpringSide框架中,Spring主要负责管理对象的生命周期和依赖关系,使得代码更加模块化和易于测试。同时,Spring还提供了丰富的数据访问抽象,包括JDBC、ORM和OXM,简化了数据库操作。 二、Hibernate的数据持久化...
在SpringSide 4的showcase中,我们可以期待看到如何有效地利用Spring MVC来构建高效、灵活的Web服务。 首先,Spring MVC的核心组件包括DispatcherServlet、Controller、Model、View和ViewResolver。...
在本文中,我们将深入探讨SpringSide示例Quickstart的Eclipse工程,了解其结构和主要组件,以便更好地利用这个项目进行学习和开发。 首先,"quickstart"是SpringSide项目提供的快速启动模板,它是专门为初学者和有...
5. **单元测试**:SpringSide强调TDD(测试驱动开发),因此在项目中会有详尽的单元测试,这不仅有助于保证代码质量,也提供了学习如何编写测试用例的机会。 6. **最佳实践**:SpringSide遵循Pragmatic编程原则,...
在SpringSide 4.2.3.GA中,我们可以看到它对Spring Boot的深度整合。Spring Boot是Spring生态系统的另一核心组件,它简化了配置和启动过程,使得开发者可以快速创建独立运行的、生产级别的Java应用。SpringSide ...
在SpringSide3中,你会了解到如何通过XML配置或注解方式实现依赖注入,以及如何使用ApplicationContext管理bean。 三、面向切面编程 AOP允许开发者将关注点分离,如日志、事务等,从而提高代码的可读性和可维护性。...
《springside.jar在Java应用中的使用详解》 在Java开发领域,springside.jar是一个备受推崇的开源项目,它为开发者提供了丰富的工具和最佳实践,以简化Spring框架的使用。本文将深入探讨springside.jar的核心功能,...
本版本,即“springside3.3”,是专为MyEclipse集成环境设计的,包含了完整的功能代码,方便开发者在MyEclipse中进行开发和调试。同时,它还附带了数据.sql文件,意味着我们可以直接导入数据库,快速搭建项目环境。 ...
在实际操作中,将SpringSide案例项目导入MyEclipse的步骤通常包括以下几点: 1. **创建新项目**:首先在MyEclipse中创建一个新的Java或Java EE项目,选择合适的项目类型,例如Web工程。 2. **解压项目**:将下载的...