Spring——整合Mybatis


整合Mybatis步骤:

1.导入相关jar包:

  • junit

  • mybatis

  • mysql数据库

  • spring相关

  • aop织入

  • mybatis-spring

     <dependencies>
         <dependency>
             <groupId>junitgroupId>
             <artifactId>junitartifactId>
             <version>4.12version>
             <scope>testscope>
         dependency>
         <dependency>
             <groupId>mysqlgroupId>
             <artifactId>mysql-connector-javaartifactId>
             <version>5.1.47version>
         dependency>
         <dependency>
             <groupId>org.mybatisgroupId>
             <artifactId>mybatisartifactId>
             <version>3.5.2version>
         dependency>
         <dependency>
             <groupId>org.springframeworkgroupId>
             <artifactId>spring-webmvcartifactId>
             <version>5.2.8.RELEASEversion>
         dependency>
         <dependency>
             <groupId>org.springframeworkgroupId>
             <artifactId>spring-jdbcartifactId>
             <version>5.1.0.RELEASEversion>
         dependency>
         <dependency>
             <groupId>org.aspectjgroupId>
             <artifactId>aspectjweaverartifactId>
             <version>1.9.6version>
         dependency>
         <dependency>
             <groupId>org.mybatisgroupId>
             <artifactId>mybatis-springartifactId>
             <version>2.0.2version>
         dependency>
     dependencies>

2.编写配置文件

 <?xml version="1.0" encoding="UTF-8" ?>
          PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
 <configuration>
     <typeAliases>
         <package name="com.yl.pojo"/>
     typeAliases>
 ?
     <environments default="development">
         <environment id="development">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.jdbc.Driver"/>
                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
                 <property name="username" value="root"/>
                 <property name="password" value="1234"/>
             dataSource>
         environment>
     environments>
 ?
     <mappers>
         <mapper class="com.yl.mapper.UserMapper"/>
     mappers>
 configuration>

3.测试

1.Mybatis-spring方式一

1.编写数据源配置

2.sqlSessionFactory

3.sqlSesstionTemplate

 <?xml version="1.0" encoding="GBK"?>
 <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
         https://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=false&useUnicode=true&characterEncoding=UTF-8"/>
         <property name="username" value="root"/>
         <property name="password" value="1234"/>
     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:com/yl/mapper/*.xml"/>
     bean>
 ?
     
     <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
         
         <constructor-arg index="0" ref="sqlSessionFactory"/>
     bean>
 beans>

4.需要给接口加实现类

 package com.yl.mapper;
 ?
 import com.yl.pojo.User;
 import org.mybatis.spring.SqlSessionTemplate;
 ?
 import java.util.List;
 ?
 public class UserMapperImpl implements UserMapper{
     //原来所有的操作用sqlSession来执行,现在使用SqlSessionTemplate
     private SqlSessionTemplate sqlSession;
 ?
     public void setSqlSession(SqlSessionTemplate sqlSession) {
         this.sqlSession = sqlSession;
    }
 ?
     public List<User> selectUser() {
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         return mapper.selectUser();
    }
 }

5.将自己写的实现类注入到spring中(一般创建一个专门用来注入的spring配置文件,将其他的spring配置文件import进来)

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

6.测试

 

2.方式二:SqlSessionDaoSupport

接口实现:

 package com.yl.mapper;
 ?
 import com.yl.pojo.User;
 import org.apache.ibatis.session.SqlSession;
 import org.mybatis.spring.support.SqlSessionDaoSupport;
 ?
 import java.util.List;
 ?
 public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
     public List<User> selectUser() {
         SqlSession sqlSession = getSqlSession();
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         return mapper.selectUser();
         //return getSqlSession().getMapper(UserMapper.class).selectUser();
    }
 }

配置文件:

 <bean id="userMapper2" class="com.yl.mapper.UserMapperImpl2">
     <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
 bean>