`

spring,ibatis的笔记

    博客分类:
  • OPEN
阅读更多
在上文中,我们把iface包下的DAO接口归为业务层,在这里不需要做修改。ibatis的sql配置文件也不需要改。要改的是DAO实现类,并在spring的配置文件中配置起来。

1、修改基类

所有的DAO实现类都继承于BaseSqlMapDao类。修改BaseSqlMapDao类如下:



public class BaseSqlMapDao extends SqlMapClientDaoSupport {  protected static final int PAGE_SIZE = 4;  protected SqlMapClientTemplate smcTemplate = this.getSqlMapClientTemplate();  public BaseSqlMapDao() { }}


使BaseSqlMapDao类改为继承于Spring提供的SqlMapClientDaoSupport类,并定义了一个保护属性 smcTemplate,其类型为SqlMapClientTemplate。关于SqlMapClientTemplate类的详细说明请参照附录中的 "Spring中文参考手册"

2、修改DAO实现类

所有的DAO实现类还是继承于BaseSqlMapDao类,实现相应的DAO接口,但其相应的DAO操作委托SqlMapClientTemplate来执行,以AccountSqlMapDao类为例,部分代码如下:



    public List getUsernameList() {    return smcTemplate.queryForList("getUsernameList", null);  }  public Account getAccount(String username, String password) {    Account account = new Account();    account.setUsername(username);    account.setPassword(password);    return (Account) smcTemplate.queryForObject("getAccountByUsernameAndPassword", account);  }  public void insertAccount(Account account) {  smcTemplate.update("insertAccount", account);  smcTemplate.update("insertProfile", account);  smcTemplate.update("insertSignon", account);  }  


就这么简单,所有函数的签名都是一样的,只需要查找替换就可以了!

3、除去工厂类以及相应的配置文件

除去DaoConfig.java这个DAO工厂类和相应的配置文件dao.xml,因为DAO的获取现在要用spring来管理。

4、DAO在Spring中的配置(applicationContext.xml)



    <bean id="dataSource"         class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName">            <value>org.hsqldb.jdbcDriver</value>        </property>        <property name="url">            <value>jdbc:hsqldb:hsql://localhost/xdb</value>        </property>        <property name="username">            <value>sa</value>        </property>        <property name="password">            <value></value>        </property>    </bean>        <!-- ibatis sqlMapClient config -->    <bean id="sqlMapClient"         class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">        <property name="configLocation">            <value>                 classpath:com\ibatis\jpetstore\persistence\sqlmapdao\sql\sql-map-config.xml            </value>        </property>        <property name="dataSource">            <ref bean="dataSource"/>        </property>        </bean>    <!-- Transactions -->    <bean id="TransactionManager"         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource">            <ref bean="dataSource"/>        </property>    </bean>    <!-- persistence layer -->    <bean id="AccountDao"         class="com.ibatis.jpetstore.persistence.sqlmapdao.AccountSqlMapDao">        <property name="sqlMapClient">            <ref local="sqlMapClient"/>        </property>    </bean>    


具体的语法请参照附录中的"Spring中文参考手册"。在这里只简单解释一下:

1. 我们首先创建一个数据源dataSource,在这里配置的是hsqldb数据库。如果是ORACLE数据库,driverClassName的值是 "oracle.jdbc.driver.OracleDriver",URL的值类似于"jdbc:oracle:thin:@wugfMobile: 1521:cdcf"。数据源现在由spring来管理,那么现在我们就可以去掉properties目录下database.properties这个 配置文件了;还有不要忘记修改sql-map-config.xml,去掉<properties resource="properties/database.properties"/>对它的引用。

2. sqlMapClient节点。这个是针对ibatis SqlMap的SqlMapClientFactoryBean配置。实际上配置了一个sqlMapClient的创建工厂类。 configLocation属性配置了ibatis映射文件的名称。dataSource属性指向了使用的数据源,这样所有使用 sqlMapClient的DAO都默认使用了该数据源,除非在DAO的配置中另外显式指定。

3. TransactionManager节点。定义了事务,使用的是DataSourceTransactionManager。

4. 下面就可以定义DAO节点了,如AccountDao,它的实现类是 com.ibatis.jpetstore.persistence.sqlmapdao.AccountSqlMapDao,使用的SQL配置从 sqlMapClient中读取,数据库连接没有特别列出,那么就是默认使用sqlMapClient配置的数据源datasource。

这样,我们就把持久层改造完了,其他的DAO配置类似于AccountDao。怎么样?简单吧。这次有接口了:) AccountDao接口->AccountSqlMapDao实现。

分享到:
评论

相关推荐

    Spring iBatis Learning Notes

    ### Spring与iBatis整合学习笔记 #### 一、目的 本文档旨在展示如何在数据库层面上使用iBatis与Spring进行整合。数据库编程通常涉及数据库连接、连接池、SQL语句、输入输出以及事务处理等内容。Java JDBC作为低...

    struts2+spring+ibatis整合项目实例

    `ibatis_3_学习笔记.pdf`可能涵盖了iBatis的基本使用,包括XML配置、动态SQL、结果映射等。 4. **项目实例**:`PrivilegeManageSystem`可能代表了权限管理系统,这是整合这三个框架的一个典型应用场景。通常会涉及...

    struts spring ibatis extjs 实例

    Struts、Spring、iBatis 和 ExtJS 是四个在IT行业中广泛应用的开源框架和技术,它们在构建企业级Java Web应用程序时发挥着重要作用。这个实例由Atanas Neshkov创建,旨在展示这些技术如何协同工作,提供高效且用户...

    iBatis2学习笔记

    2.iBatis2学习笔记:与Spring2的整合.doc 3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc 6.iBatis2学习笔记:一对多映射(双向)....

    ibatis笔记

    **Ibatis笔记详解** Ibatis,全称MyBatis,是一个优秀的开源持久层框架,它支持定制化SQL、存储过程以及高级映射。在Java世界里,MyBatis以其轻量级、易用性以及高度灵活的特性,成为了开发者进行数据库操作时的...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...

    Ibatis 练习Demo和笔记

    本练习Demo和笔记旨在帮助初学者快速掌握Ibatis的基本用法和核心概念。 【Ibatis 的主要组件】 1. **SqlSessionFactoryBuilder**:构建SqlSessionFactory的工具类,通常在应用启动时创建一次。 2. **...

    ibatis学习笔记(一)

    Ibatis与Spring框架集成时,可以利用Spring的事务管理特性,简化事务处理。 总结来说,Ibatis的学习主要包括理解其核心组件、SQL映射机制、动态SQL和事务管理等方面。博主的笔记可能涵盖这些内容,并通过一个或多个...

    持久层框架ibatis学习笔记

    通过本文的学习笔记,我们可以了解到 iBatis 在简化数据库访问的同时提供了足够的灵活性。尽管 iBatis 相比 Hibernate 在自动化程度上略显不足,但对于需要高度定制 SQL 查询的场景来说,iBatis 的优势十分明显。...

    spring2.0学习笔记

    3. **数据访问集成**:Spring 2.0增强了对各种数据源的支持,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和iBatis。它提供了一种统一的方式来处理数据库操作,降低了不同技术之间的转换成本。 4. *...

    牧紫小岩的Spring学习笔记pdf

    ### 牧紫小岩的Spring学习笔记:深入解析Spring框架的核心功能与应用 #### Spring框架概览 Spring框架,作为Java领域中一个重要的轻量级框架,主要关注于解决企业级应用开发中的复杂性问题。它通过提供一系列的...

    ibatis学习笔记

    在实际开发中,iBatis可以与Spring框架结合,通过Spring的依赖注入来管理和初始化SqlSessionFactory,实现更高级的事务管理。同时,iBatis还可以配合Mapper框架,进一步提高开发效率。 总结,iBatis作为一个优秀的...

    struts2+ibatis+spring

    Struts2、iBatis和Spring是Java Web开发中的三个重要框架,它们分别在MVC模式、持久层操作和依赖注入方面发挥着关键作用。这三个框架的整合使用,可以构建出高效、灵活的企业级应用。 Struts2是基于MVC(Model-View...

    ibatis数据库笔记

    5. **事务管理**:ibatis可以与Spring等框架集成,实现事务管理功能。 ### ibatis的工作原理 ibatis的工作流程主要包括以下几个步骤: 1. **配置文件解析**:开发者需要编写一个XML配置文件来定义数据源、映射...

    Spring技术内幕 学习笔记

    标题中的“Spring技术内幕 学习笔记”表明这是一份关于深入理解Spring框架核心机制的资料集合,主要关注Spring框架的内部工作原理和高级用法。描述中的“NULL”没有提供额外信息,但我们可以通过标签“源码”和...

    spring培训学习笔记

    ### Spring培训学习笔记知识点梳理 #### 一、Spring框架概览 - **启动时间与背景**:Spring项目始于2003年2月,最初的基础代码来源于书籍《Expert One-On-One J2EE Design and Development》。 - **核心特性**: -...

    Spring学习笔记

    - **ORM模块**:整合了多种ORM框架,如Hibernate、JPA、iBatis等,简化了对象与数据库的交互。 4. **应用场景** - Spring 可以用来创建JavaBean工厂,管理对象的生命周期和依赖关系。 - 在业务逻辑层,Spring ...

    ibatis大全

    6. **struts2+spring+ibatis框架整合.wps**:同上,可能是另一种格式的整合教程或笔记,可能包含更具体的实践指导。 7. **ibatis-login**:可能是一个简单的登录功能示例,展示了如何在iBATIS中处理用户认证,这...

Global site tag (gtag.js) - Google Analytics