Spring整合Mybatis

Spring 整合 mybatis

将 MyBatis与 Spring 进行整合,主要解决的问题就是将 SqlSessionFactory 对象交由 Spring来管理。所以,该整合,只需要将 SqlSessionFactory 的对象生成器 SqlSessionFactoryBean 注册在 Spring 容器中,再将其注入给 Dao 的实现类即可完成整合

实现 Spring 与 MyBatis 的整合常用的方式:扫描的 Mapper 动态代理

建立数据库表

Spring整合Mybatis_第1张图片

pom.xml

添加相关依赖:

 

     
         junit
         junit
         4.13.2
     
 ​
     
         mysql
         mysql-connector-java
         8.0.28
     
 ​
     
         org.mybatis
         mybatis
         3.5.9
     
 ​
     
         org.springframework
         spring-core
         5.3.18
     
 ​
     
         org.springframework
         spring-beans
         5.3.18
     
     
         org.springframework
         spring-context
         5.3.18
     
 ​
     
         org.springframework
         spring-jdbc
         5.3.18
      ​
 ​
     
         org.springframework
         spring-tx
         5.3.18
     
 ​  
     
         org.mybatis
         mybatis-spring
         2.0.6
     
     
     
         com.alibaba
         druid
         1.2.8
     
     
        
       
             org.apache.logging.log4j
             log4j-api
             2.17.1
         
         
             org.apache.logging.log4j
             log4j-core
             2.17.1
         
 
 ​
 ​
 

创建实体类

 package entity;
 ​
 public class Dept {
     private int id;
     private String name;
     //省略 get/set  构造方法
  }

创建mapper

 package mapper;
 ​
 import entity.Dept;
 ​
 import java.util.List;
 public interface DeptMapper {
 ​
     /**
      * 查询 所有 的部门信息
      * @return  部门的集合
      */
     List findAll();
     
 }
 
 
 ​
 
     
     
 ​
 

service

 package service.impl;
 ​
 import entity.Dept;
 import mapper.DeptMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import service.DeptService;
 ​
 import java.util.List;
 ​
 @Service
 public class DeptServiceImpl implements DeptService {
     @Autowired
     private DeptMapper mapper;
 ​
     public List findAll() {
         return mapper.findAll();
     }
 }
 ​
 ​
 ​
 ​
 package service;
 ​
 import entity.Dept;
 import java.util.List;
 ​
 ​
 public interface DeptService {
     List findAll();
 }
 ​
数据库配置文件
 jdbc.url=jdbc:mysql://localhost:3306/jdbc02
 jdbc.username=root
 jdbc.password=root
 jdbc.driver=com.mysql.cj.jdbc.Driver

日志文件 ---log4j2.properties

 status = info
 name = PropertiesConfig
 ​
 appenders = console
 ​
 appender.console.type = Console
 appender.console.name = STDOUT
 appender.console.layout.type = PatternLayout
 appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 ​
 rootLogger.level = debug
 rootLogger.appenderRefs = stdout
 rootLogger.appenderRef.stdout.ref = STDOUT

spring 配置文件

在基础的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来创建。

 
 
 ​
 ​
     
 ​
     
     
 ​
     
     
          
          
         
         
     
 ​
 ​
    
          
          
          
           
               
                   
                    
                     
                   
                   
                   
               
           
         
          
      
 ​
     
         
          
     
 

测试类

 import entity.Dept;
 import org.junit.Test;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 import service.DeptService;
 import service.impl.DeptServiceImpl;
 ​
 import java.util.List;
 ​
 public class TestA {
 ​
     @Test
     public void test1(){
         ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");
         DeptService service = ac.getBean("deptServiceImpl", DeptServiceImpl.class);
         List list = service.findAll();
         for(Dept de:list){
             System.out.println(de.getId()+"----"+de.getName());
         }
 ​
     }
 ​
 }

你可能感兴趣的:(Spring,springmvc,mybatis,spring,mybatis,java)