01_MyBatis和Spring整合之传统dao方式
A.整合思路
SqlSessionFactory对象应该放到spring容器中作为单例存在。 传统dao的开发方式中,应该从spring容器中获得sqlsession对象。 Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。 数据库的连接以及数据库连接池事务管理都交给spring容器来完成。
B.导入jar包
C.传统dao方式
a.自定义接口IUserDao b.自定义类实现IUserDao接口,继承SqlSessionDaoSupport类
public class IUserDaoImpl extends SqlSessionDaoSupport implements IUserDao { @Override public List selectUserList() { SqlSession sqlSession = getSqlSession(); List userList = sqlSession.selectList(“selectUserList”); return userList; } }
注意:此处的SqlSession不能close c.配置IUserDaoImpl实例到Spring容器,配置参数sqlSessionFactory d.配置SqlSessionFactoryBean实例到Spring容器,配置参数dataSource,configLocation e.配置dataSource实例到Spring容器,配置参数driverClass,jdbcUrl,user,password f.在SqlMapConfig.xml中加载IUserDao.xml
02_MyBatis和Spring整合之mapper映射方式
A.步骤
自定义接口IUserDao 定义IUserDao.xml 将IUserDao接口和IUserDao.xml放到IUserDao接口的包下 将MapperFactoryBean注入到spring容器,设置参数mapperInterface,sqlSessionFactory, 会将映射文件加载到spring中 将sqlSessinFactory注入到spring容器.设置参数configLocation,dataSource 将dataSource注入到spring容器,设置参数driverClass,jdbcUrl,user,password
B.代码实现
<!‐‐‐‐>
C.存在的问题
如果使用上面这种方式进行整合,如果有很多个dao接口的话,那么就很麻烦,那么这个时 候就采用包扫描的方式,一次性扫描多个dao接口
<!‐‐ ‐‐>
注意:
MapperScannerConfigurer可以不用配置sqlSessionFactory,它会自动去Spring扫 描,如果有找到sqlSessionFactory,会自动注入。