Spring整合mybatis有很多种方式,博主之前文章写了一种方式,是用SqlSessionTemplate,现在介绍其他的几种方式。配置文件中的dataSource配置就略了
第二种方式,使用SqlSessionDaoSupport(这种方式比较新,需要新版的整合jar包)
这种方式不需要管理SqlSessionTemplate,在Dao的实现中需要继承SqlSessionDaoSupport
dao实现
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
@Override
public List<User> selectUser() {
return getSqlSession().selectList("cn.sxt.entity.user.mapper.selectAll");
}
}
配置文件
<!-- dataSource的配置略了 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis.cfg.xml"/>
</bean>
<bean id="userDao" class="cn.sxt.dao.impl.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
观看源码可以得知SqlSessionDaoSupport本质还是和SqlSessionTemplate一样,只不过封装在了里面,减少了bean的配置。DAO中也不用写成员,直接this.getSqlSession()得到session
第三种 方式
mybatis使用注解
userMapper
public interface UserMapper {
@Select("select * from user")
public List<User> selectUser();
}
UserServiceImpl
public class UserServiceImpl implements UserService{
private UserMapper userMapper = null;
public void setUserMapper(UserMapper userMapper) {
this.userMapper = userMapper;
}
@Override
public List<User> selectUser() {
return userMapper.selectUser();
}
}
beans.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis.cfg.xml"/>
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="cn.sxt.dao.UserMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<bean id="userService" class="cn.sxt.service.impl.UserServiceImpl">
<property name="userMapper" ref="userMapper"/>
</bean>
第四中方式 不需要mybatis的配置文件,将所有的配置信息配置到spring的配置文件中
因为原来额的mybatis中dataSource已经给Spring管理了,别名可以不设置,那么mybatis.cfg.xml里面只剩下
<mappers>
<mapper resource="cn/sxt/entity/user.mapper.xml"/>
</mappers>
而这个完全可以由spring来管理
改进后配置如下,dataSource的配置略了
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:cn/sxt/vo/*.mapper.xml"></property>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<bean id="userDao" class="cn.sxt.dao.impl.UserDaoImpl">
<property name="sqlSession" ref="sqlSessionTemplate"/>
</bean>

本文介绍了Spring整合MyBatis的四种不同方法,包括使用SqlSessionDaoSupport、MyBatis注解、以及完全通过Spring配置文件管理的方式,并提供了详细的代码示例。
2382

被折叠的 条评论
为什么被折叠?



