发表于: 2016-07-21 13:49:01
0 2387
【完成工作】
Spring+mybatis
将spring和mybatis整合后,将由spring来管理dao,数据源和sqlSessionFactoy。在访问数据库的过程中,spring会自动开启事务及自动关闭sqlSession,不需要再在代码中手动打开sqlSession及关闭。
源码链接:http://pan.baidu.com/s/1pKMF12N
工程结构如下图所示:
工程流程如下:
1. 所需jar包
(1) Mybatis中所需jar包;
(2) spring-framework-3.2.0.RELEASE
(3) mybatis-spring-1.2.2.jar
2. log4j
3. pojo类(Student.class)
4. SqlMapConfig.xml
配置mybatis加载信息,与spring整合后只需要配置mapper.xml的路径,可以配置别名。
5. Mapper.xml
配置sql语句。
6. applicationContext.xml (spring配置文件)
(1) 数据源
(2) SqlSessionFactory
a) 将数据源注入sqlSessionFactory得到sqlSessionFactory
b) 加载sqlmapConfig.xml
7. 开发dao及dao实现类 (继承SqlSessionDaoSupport类)
a) 可直接拿到sqlSession
b) 用完后可自动关闭sqlSession
8. 配置dao
9. 测试
(1) 创建spring容器
(2) 通过spring容器获得dao实例
(3) 测试方法
以上是dao原始开发的spring+mybatis整合访问数据库,需要编写daoImpl来完成。同理可以通过代理方式来开发dao。Spring提供MapperFactoryBean,可直接将dao接口和sqlSessionFactory注入其中生成代理对象。
1. 配置MapperFactoryBean
若有多个dao,可用扫描器自动生成代理对象
2. 测试
【遇到问题】
1. 用这个元素不能加载jdbc.properties,目前还没找原因,只能用扫描器代替
【目前收获】
1. spring-mybatis-1.2.2 包中的SqlSessionDaoSupport类在注入sqlSessionFactory后可返回sqlSession实例,并且会自动打开事物和关闭sqlSession。通过继承该类可以简化代码。
【后续计划】
1. 整理springmvc, springmvc+mybatis
评论