spring(八)spring整合mybatis

8、整合Mybatis

pom中导入相关jar包;

  • myabtis
  • mysql
  • spring相关
  • aop织入
  • mybatis-spring
  • 配置build解决maven项目无法读取java文件下配置文件问题

8.2 整合方式一

环境结构

spring(八)spring整合mybatis

常规的Mapper接口和Mapper.xml文件照常写好

spring-dao.xml:整合mybatis

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <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?uesSSL=true&amp;useUnicode=false&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

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

    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <!--只能使用构造器注入sqlSessionFactory,因为没有set方法-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

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


</beans>

spring-dao.xml详解

spring(八)spring整合mybatis

spring(八)spring整合mybatis

spring(八)spring整合mybatis

spring(八)spring整合mybatis

mybatis-config.xml

spring(八)spring整合mybatis

需要一个实体类

public class UserMapperImpl implements UserMapper{

    private SqlSessionTemplate sqlSessionTemplate;

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
        this.sqlSessionTemplate = sqlSessionTemplate;
    }

    @Override
    public List<User> getUser() {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        return mapper.getUser();
    }
}

测试

@Test
    public void test(){

        ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");

        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        List<User> users = userMapper.getUser();
        for (User user : users) {
            System.out.println(user);
        }

        context.getBean("sqlSession", SqlSessionTemplate.class).close();

    }

8.1整合Mybatis方式二(推荐)

SqlSessionDaoSupport

SqlSessionDaoSupport 是一个抽象的支持类,用来为你提供 SqlSession。调用 getSqlSession() 方法你会得到一个 SqlSessionTemplate,之后可以用于执行 SQL 方法,就像下面这样:

spring(八)spring整合mybatis

spring(八)spring整合mybatis

上一篇:JavaWeb-03-Servlet-11-多个Servlet之间的数据共享-02HttpSession接口


下一篇:(selenium+python)_UI自动化_模拟滚轮滑动页面