`

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

    非常好的学习笔记,用实例一步一步教会你如何使用结合iBatis和Spring。英文版,英文不好的朋友也可以借鉴其中的范例。

    iBatis2学习笔记

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

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

    NULL 博文链接:https://copperfield.iteye.com/blog/1170901

    SSI-iBatis2.x

    本文是个人在学习过程中的学习笔记,详细讲解了如何使用iBatis2.x以及如何将其与Struts2.x,Spring3.x进行整合开发,其中包括iBatis基础使用,存储过程调用和数据库函数的调用。

    个人信息管理系统Anynote 支持多用户

    Anynote是一个基于extjs、struts、spring、ibatis构建的开源的支持多用户的个人信息管理系统,并且各个功能模块都可以选择性的开启或者停用,主要功能包括: 任务管理,记录工作和生活中的待办事项,有效安排时间,...

    maven聚合web工程--struts2+spring

    学习maven笔记,尚不能实现自动发布,parent工程package之后,把module项目的war手工发布到tomcat的webapp下。

    企业高并发的成熟解决方案.zip

    资源内容: 1,企业高并发的成熟解决方案资料和笔记;2,数据库高并发原理+演示+说明资料和笔记 其中,第一部分内容有:高并发解决方案;...多数据源支持数据分片的项目示例源代码(spring+ibatis);

    springmybatis

    而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此...

    JSP网络编程学习笔记源代码 part2

    第四篇为“数据库访问技术”,主要讲述JDBC技术及JSP和Servlet如何通过JDBC访问数据库,以及如何改进数据库的访问和目前流行的Hibernate、iBATIS及Spring集成访问的支持;第五篇为“标签语言和表达式语言”,主要...

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    appfuse 学习笔记

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    Anynote个人信息管理系统(支持多用户)v1.3.4.149

    Anynote是一个基于extjs3.3、struts1.3.10、spring2.5、ibatis-2.3.4构建的个人信息管理系统(支持多用户)。主要功能包括:1、待办事项;2、日常笔记;3、阅读器;4、个人相册;5、账目理财。 该版本更新内容如下: 1...

    java开发常用的中文API集合包

    Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...

    java学习笔记

    都是txt的文档,自己两年来最精华的总结,资源包括 hibernate spring structs2 javase javaee 数据库等等笔记,有更精华的将会再后期更新,上传。希望能对java开发者带来方便。

    Anynote个人信息管理系统 1.3.0.rar

    Anynote是一个基于extjs3.3、struts1.3.10、spring2.5、ibatis-2.3.4构建的个人信息管理系统(支持多用户)。主要功能包括:1、待办事项;2、**常笔记;3、阅读器;4、个人相册;5、账目理财。 Anynote目前最新版本...

    J2EE(中文版)(CHM版)

    j2ee书籍,对j2ee进行了全面的介绍,使读者能够很好的掌握j2ee,相信读过本书的人能学习到自己需要的知识--连池,Eclipse操作,Struts,Spring,Hibernate,iBATIS,xml, Log4J 学习笔记.

    Anynote 个人信息管理系统 v1.3.4.149

    Anynote是一个基于extjs3.3、struts1.3.10、spring2.5、ibatis-2.3.4构建的个人信息管理系统(支持多用户)。主要功能包括:1、待办事项;2、日常笔记;3、阅读器;4、个人相册;5、账目理财。

    J2EE(中文版)(exe版)

    j2ee书籍,对j2ee进行了全面的介绍,使读者能够很好的掌握j2ee,相信读过本书的人能学习到自己需要的知识--连池,Eclipse操作,Struts,Spring,Hibernate,iBATIS,xml, Log4J 学习笔记.

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题56.ibatis和hibernate有什么不同.mp4 │ Java面试题57.hibernate对象状态及其转换.mp4 │ Java面试题58:hibernate的缓存.mp4 │ Java面试题59.webservice的使用场景.mp4 │ Java面试题60.Activiti的...

    java文集

    ext学习笔记一 小试iBatis RIA(Rich Internet Application)的现状和未来 Java应用中域名解析不过期的解决方法 Java编程那些事儿45—数组使用示例1 一步步熟悉OFBiz 用Java做客户端调用.NET写...

Global site tag (gtag.js) - Google Analytics