步骤:

  1. 导入相关jar包

    • junit
    • mybatis
    • mysql数据库
    • spring相关的
    • aop织入
    • mybatis-spring
    • Lombok

      1. <dependencies>
      2. <dependency>
      3. <groupId>junit</groupId>
      4. <artifactId>junit</artifactId>
      5. <version>4.12</version>
      6. </dependency>
      7. <dependency>
      8. <groupId>mysql</groupId>
      9. <artifactId>mysql-connector-java</artifactId>
      10. <version>5.1.47</version>
      11. </dependency>
      12. <dependency>
      13. <groupId>org.mybatis</groupId>
      14. <artifactId>mybatis</artifactId>
      15. <version>3.5.2</version>
      16. </dependency>
      17. <dependency>
      18. <groupId>org.springframework</groupId>
      19. <artifactId>spring-webmvc</artifactId>
      20. <version>5.2.0.RELEASE</version>
      21. </dependency>
      22. <dependency>
      23. <groupId>org.springframework</groupId>
      24. <artifactId>spring-jdbc</artifactId>
      25. <version>5.2.0.RELEASE</version>
      26. </dependency>
      27. <dependency>
      28. <groupId>org.mybatis</groupId>
      29. <artifactId>mybatis-spring</artifactId>
      30. <version>2.0.2</version>
      31. </dependency>
      32. <dependency>
      33. <groupId>org.projectlombok</groupId>
      34. <artifactId>lombok</artifactId>
      35. <version>RELEASE</version>
      36. <scope>compile</scope>
      37. </dependency>
      38. </dependencies>
      39. <!-- 在build中配置resources,来防止我们资源到处失败的问题-->
      40. <build>
      41. <resources>
      42. <resource>
      43. <directory>src/main/resources</directory>
      44. <includes>
      45. <include>**/*.properties</include>
      46. <include>**/*.xml</include>
      47. </includes>
      48. <filtering>true</filtering>
      49. </resource>
      50. <resource>
      51. <directory>src/main/java</directory>
      52. <includes>
      53. <include>**/*.properties</include>
      54. <include>**/*.xml</include>
      55. </includes>
      56. <filtering>false</filtering>
      57. </resource>
      58. </resources>
      59. </build>
  2. 编写配置文件

  3. 测试

整合Mybatis方式一:Mybatis-spring

1,编写数据源配置

<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="123456"/>
    </bean>

2,sqlSessionFactory

<!--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:mapper/UserMapper.xml"/>
    </bean>

3,sqlSessionTemplate
没有Set方法,只能使用构造器注入

<!--SqlSessionTemplate-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

4,需要给接口加实现类

package mapper;

import org.mybatis.spring.SqlSessionTemplate;
import pojo.User;

import java.util.List;

public class UserMapperImpl implements UserMapper{
    //以前,我们所有的操作,都是用SqlSession来执行
    //现在,我们都是用SqlSessionTemplate
  private SqlSessionTemplate sqlSessionTemplate;

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


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

5,给实现类注册Bean

<bean id="userMapperImpl" class="mapper.UserMapperImpl">
        <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>
    </bean>

7,测试

import mapper.UserMapper;
import mapper.UserMapperImpl;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pojo.User;
import utils.MybatisUtils;

import java.util.List;

public class Junit {
    @Test
    public void test(){
       ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapperImpl userMapperImpl = context.getBean("userMapperImpl", UserMapperImpl.class);
        List<User> users = userMapperImpl.selectAll();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

整合mybatis方式二:SqlSessionSupport

package mapper;

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import pojo.User;

import java.util.List;

public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
    @Override
    public List<User> selectAll() {
        SqlSession sqlSession = getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.selectAll();
    }
}

死代码

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

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <property name="typeAliases" value="pojo.User"/>
    </bean>

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>