Spring整合mybatis (二)

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

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值