Spring基础学习之整合Mybatis

Spring基础学习之整合Mybatis,第1张

Spring基础学习之整合Mybatis

前言:

小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师。
这个Spring基础学习系列是用来记录我学习Spring框架基础知识的全过程 (这个系列是参照B站狂神的Spring5最新教程来写的,由于是之前整理的,但当时没有发布出来,所以有些地方可能有错误,希望大家能够及时指正!)
之后我将会以一天一更的速度更新这个系列,还没有学习Spring5框架的小伙伴可以参照我的博客学习一下;当然学习过的小伙伴,也可以顺便跟我一起复习一下基础。
最后,希望能够和大家一同进步吧!加油吧!少年们!
废话不多说,让我们开始今天的学习内容吧,今天我们来到了Spring基础学习的第十二站:整合Mybatis!

12.整合Mybatis 12.1 回忆Mybatis的使用 12.1.1 导入相关资源jar包 1.junit单元测试

    junit
    junit
    4.12

2.mybatis资源依赖

    org.mybatis
    mybatis
    3.5.2

3.mysql数据库驱动

    mysql
    mysql-connector-java
    5.1.47

4.springframework资源依赖


    org.springframework
    spring-webmvc
    5.2.0.RELEASE

5.spring-jdbc资源依赖

    org.springframework
    spring-jdbc
    5.2.0.RELEASE

6.aop织入资源依赖

    org.aspectj
    aspectjweaver
    1.8.13

7.mybatis-spring资源依赖

    org.mybatis
    mybatis-spring
    2.0.3

8.lombok资源依赖

    org.projectlombok
    lombok
    1.16.10

9.log4j资源依赖


    log4j
    log4j
    1.2.17

10.build中配置resources

    
        
            src/main/resources
            
                ***.xml
            
            false
        
        
            src/main/java
            
                ***.xml
            
            false
        
    
                
12.1.2 编写Mybatis核心配置文件
  • resource目录下编写mybatis-config.xml配置文件




    
    
        
    
    
    
        
        
            
            
            
            
                
                
                
                
            
        
    
    
    
        
        
        

    

12.1.3 编写User实体类
package com.kuang.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data // 引入无参构造,get和set方法以及toString方法
@AllArgsConstructor // 引入有参构造
@NoArgsConstructor // 再次引入无参构造,防止引入有参构造时覆盖无参构造
public class User {
    
    private int id;
    private String name;
    private String pwd;
    
}
12.1.4 编写接口以及xml配置文件 1.编写UserMapper接口
package com.kuang.mapper;
import com.kuang.pojo.User;
import java.util.List;
public interface UserMapper {
    
    // 查询所有用户信息
    public List getUsers();
    
}
2.编写UserMapper.xml配置文件




    
    
    
    
        Select * from mybatis.user
    
    

12.1.5 编写MyTest测试类
package com.kuang.dao;

public class MyTest {
    
    //查询所有用户信息
    @Test
    public void getUsers() throws IOException {
        // 获取核心配置文件
        String resources = "mybatis-config.xml";
        // 将核心配置文件转化为流式输出
        InputStream in = Resources.getResourceAsStream(resources);
        // 读取流式文件,通过SqlSessionFactoryBuilder获取SqlSessionFactory对象
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        // SqlSessionFactory获取sqlSession对象:设置为自动提交
        SqlSession sqlSession = sessionFactory.openSession(true);
        // 通过反射机制获取Mapper接口对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        // 调用getUsers方法,查询所有用户信息,获取users数组
        List users= mapper.getUsers();
        // 遍历users数组
        for (User user : users) {
            System.out.println(user);
        }
        // 关闭sqlSession对象
        sqlSession.close();
    }
    
}
12.1.6 测试结果

结果:成功查询到所有的用户信息!

12.2 Mybatis-Spring的使用 12.2.1 编写实体类和接口及配置文件 1.编写User实体类
  • 与12.1.3的User实体类代码相同
2.编写UserMapper接口
  • 与12.1.4的UserMapper接口代码相同
3.编写UserMapper.xml配置文件
  • 与12.1.4的UserMapper.xml文件代码相同
12.2.1编写Spring和Mybatis核心配置文件 1.编写DataSource数据源
  • resources文件下创建spring-dao.xml配置文件,使用Spring提供的JDBC编写DataSource数据源


     
    
        
        
        
        
    

2. 注入sqlSessionFactory
  • 修改spring-dao.xml配置文件,在编写DataSource数据源后面注入sqlSessionFactory

    
    
    
    
    spring-dao.xml配置文件,在注入sqlSessionTemplate后面注入UserMapperImpl实现类 

    

3.编写主配置文件
  • resources文件下创建applicationContext.xml配置文件,导入spring-dao.xml配置文件,也可以直接在主配置文件中进行注入接口实现类


    
        
       
    
        
        
            
        
    

12.2.5 编写MyTest测试类和测试结果 1.编写MyTest测试类
package com.kuang.dao;

public class MyTest {
    
    // 获取所有的用户信息:使用将SqlSessionTemplate私有化方式
    @Test
    public void getUsers()  {
        // 获取上下文信息,得到Spring的IOC容器
        ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
        // 从IOC容器中获取UserMapper的Bean信息(说明类型后就不需要强制转换了)
        UserMapper userMapper = context.getBean("userMapper",UserMapper.class);
        // 调用getUsers获取所有用户,然后进行遍历
        for (User user : userMapper.getUsers()) {
            // 打印用户信息
            System.out.println(user);
        }
    }
    
}
2.测试结果

结果:成功查询到所有的用户信息!

12.3 Mybatis-Spring的使用改进 12.3.1 修改和接口实现类注入 1.编写接口实现类UserMapperImpl2
  • 创建一个实现UserMapper接口的UserMapperImpl2实现类,并且继承SqlSessionDaoSupport对象
package com.kuang.dao;

import com.kuang.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import java.util.List;

//UserMapperImpl2实现类直接继承SqlSessionDaoSupport
public class UserMapperImpl2 extends SqlSessionDaoSupport implements UserMapper{
    //重写getUsers方法
    public List getUsers() {

        // 上面三行代码的精简版
        return  getSqlSession().getMapper(UserMapper.class).getUsers();
    }
}
2. 注入UsereMapperImpl2接口实现类
  • 修改applicationContext.xml配置文件,注入UsereMapperImpl2接口实现类<


        
       
        
        
            
            
        

12.3.2 修改MyTest测试类
package com.kuang.dao;
public class MyTest {    
    
		//获取所有的用户信息:使用继承SqlSessionDaoSupport方式
        @Test
        public void getUsers3()  {
            // 获取上下文信息,得到Spring的IOC容器
            ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
            // 从IOC容器中获取UserMapper的Bean信息(说明类型后就不需要强制转换了)
            UserMapper userMapper = context.getBean("userMapper2",UserMapper.class);
            // 调用getUsers获取所有用户,然后进行遍历
            for (User user : userMapper.getUsers()) {
                System.out.println(user);
            }
       }
}
12.3.3 测试结果

结果:成功查询到所有的用户信息!

12…3.4 Mybatis-Spring使用总结
  • 使用将SqlSessionTemplate私有化方式即在接口实现类中引入并私有化SqlSessionTemplate对象
  • 使用继承SqlSessionDaoSupport方式即让接口实现类直接继承SqlSessionDaoSupport对象

好了,今天的有关整合Mybatis的学习就到此结束啦,欢迎小伙伴们积极学习和讨论,喜欢的可以给蜗牛君点个关注,顺便来个一键三连,我们下期见,拜拜啦!


参考视频链接:https://www.bilibili.com/video/BV1WE411d7Dv(【狂神说Java】Spring5最新教程IDEA版通俗易懂)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4658290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存