mybatis整合spring
参考代码:mybatis整合spring代码及注解
——————————————————————————
需要添加mybatis-spring.jar包
mybatis与spring整合后增加了一个配置文件applicationContext.xml
需要spring通过单例方式管理SqlSessionFactory。
spring和mybatis整合生成对象,使用SqlSessionFactory创建SqlSession
持久层的mapper都需要由spring进行管理
1.SqlMapConfig.xml:
和spring整合后,Sql的大多数配置都将写入到applicationContext.xml的配置中
<typeAliases>用来定义别名
applicationContext.xml:
mybatis在与spring整合后
<bean>用来加载配置文件db.properties
加载数据源,使用dbcp连接数据库
配置sqlSessionFactory,并加载mybatis的配置文件SqlMapConfig.xml
配置原始的dao接口。
配置mapper的批量扫描
2.对DAO的改进:
在与spring整合后,dao的实现类可以直接继承SqlSessionDaoSupport
从而不用手动创建SessionFactory
可以直接使用application对象的方法来获得返回数据:例
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
继承SqlSessionDaoSupport之后,不用手动创建工厂
// private SqlSessionFactory sqlSessionFactory;
// public UserDaoImpl(SqlSessionFactory sqlSessionFactory){this.sqlSessionFactory=sqlSessionFactory;}
@Override
public User findUserById(int id) throws Exception {
// //使用绘画工厂创建会话
// SqlSession sqlSession = sqlSessionFactory.openSession();
在这里直接通过继承SqlSessionDaoSupport,可以直接获取会话,且自动关闭
SqlSession sqlSession = this.getSqlSession();
User user = sqlSession.selectOne("test.findUserById");
// sqlSession.close();
System.out.println(user);
return user;
}
}
**
MyBatis整合Spring后的完整目录(mapper方式)
**