Spring & Mybatis

spring与Mybatis整合
核心思想:将SqlSessionFactory和SqlSession交给spring来管理

步骤

  1. 创建包 ,创建表,实体类
  2. 导入jar包
    Spring整合Mybatis_第1张图片

  3. 编辑配置文件

    • spring配置文件

      • 引入外部数据源,数据库相关配置放在config.properties中

        一般出现location都要使用classpath

      • 使用连接池配置数据源,连接池用dbcp或者c3p0,不能同时配置,否则冲突
        在mybatis配置文件中不用再配置数据源相关信息
        使用的dbcp连接池:

        value的值是外部数据文件的key




        或者使用c3p0 连接池





      • 配置SqlSessionFactory,用于创建sqlSession,使用整合包的类SqlSessionFactoryBean,用于使spring能够提供SqlSessionFactory对象,需要指定配置文件路径以及扫描mapper.xml映射文件


        引入mybatis的配置文件

        扫描mapper.xml映射

      • 配置SqlSession,使用整合包的SqlSessionTemplate对象,使spring能够提供sqlsession对象

        由于SqlSessionTemplate中的sqlSessionFactory属性没有set方法,不能使用set注入依赖,有将SqlSessionFactory作为参数的构造方法,所以使用构造器注入

    • mybatis配置文件
      数据源与mapper.xml映射文件扫描已经在spring配置文件中,mybatis配置文件只需要进行一些setting设置和别名设置等.









  4. 编写mapper接口,并在spring配置文件添加mapperFactoryBean进行管理

    • 编写controller层的mapper接口
      public interface UserMapper {
      User queryUserById(@Param("id") Integer id);
      }
    • 配置spring文件,将mapper接×××给spring管理
      使用整合包的MapperFactoryBean类,mapperInterface属性值为接口路径,需要注入SqlSessionFactory依赖




      使用Mybatis时使用SqlSessionFactory创建SqlSession对象,通过sqlsession对象的getMapper()方法指定接口名获得mapper接口,所以这里要指定接口路径并依赖SqlSessionFactory.
  5. 创建service类,注入mapper依赖,并在spring配置文件中将其交由spring管理

    • service类:
      public class UserService {br/>@Autowired
      private UserMapper userMapper;
      public User queryUserById(Integer id){
      User user = userMapper.queryUserById(id);
      return user;
      }
      }

    • spring配置: