Spring整合Mybatis的方式一

1.在Spring的配置文件当中编写数据源

      <!--DataSource数据源:使用Spring的数据源替换Mybatis的配置-->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
        <property name="username" value="root"/>
        <property name="password" value="333"/>
    </bean>

2.编写SqlSessionFactory(可以绑定Mybatis的资源文件:推荐这么操作,这样使得mybatis的配置文件当中代码减少只需要保留一些基础的设置)

     <!--SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="datasource" />
        <!--绑定Mybatis的配置文件-->
        <property name="configLocation" value="classpath:Mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:com/sqx/dao/*.xml"/>
    </bean>

3.编写SqlSessionTemplate(等价于SqlSession)

  <!--SqlSessionTemplate-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><!--构造器注入-->
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>

4.编写Mapper接口的实现类,设置一个属性SqlSessionTemplate的属性和对应的set方法,以及对方法的重写

public class UserMapperImpl implements UserMapper {
    private SqlSessionTemplate sqlSession;
//以前我们的操作全在sqlSession中执行,现在全在SqlSessionTemplate当中执行
    public void setSqlSession(SqlSessionTemplate sqlSession) {
        this.sqlSession = sqlSession;
    }

    public List<User> queryUsers() {
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.queryUsers();
    }
}

5.将接口的实现类托管给Spring(注册在Spring的配置文件当中)

<bean id="userMapper" class="com.sqx.dao.UserMapperImpl">
        <property name="sqlSession" ref="sqlSession"/>
 </bean>

6.测试的时候可以直接调用实现类的方法即可

    @Test
    public void queryUsersTest(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        List<User> userList = userMapper.queryUsers();
        for (User user : userList) {
            System.out.println(user);
        }
    }

最后一般是团队合作开发可以把Spring配置文件全部整合到一个配置文件当中即可
在这里插入图片描述
总结:这样做尽管多出了一个接口的实现类,但是仍然是利大于弊的,因为使得项目层次更加清晰,也是IOC的思想

posted @ 2021-01-13 16:16  爪洼ing  阅读(29)  评论(0)    收藏  举报