当前位置: 首页 > news >正文

spring06:mybatis-spring(Spring整合MyBatis)

spring06:mybatis-spring(Spring整合MyBatis)


文章目录

  • spring06:mybatis-spring(Spring整合MyBatis)
  • 前言:
    • 什么是 MyBatis-Spring?
      • MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。
  • 一、mybatis流程
    • 1. 编写实体类
    • 2. 编写核心配置文件mybatis-config.xml
    • 3. 编写接口UserMapper
    • 4. 编写配置文件UserMapper.xml
    • 5. 编写测试类
  • 二、spring整合mybatis 方式一
    • 1. 在pom.xml导入maven依赖:mybatis-spring
    • 2. 写一个接口实现类:UserDaoImpl(对于UserMapper接口)
      • 在后面须要把这个类注入到spring容器里面(beams.xml)
    • 3. 编写spring配置文件spring-dao.xml(相当于beans.xml)
      • 注意:上面图片第4步的将实现类注入到spring中,写错了(那个是第二种方式的)
      • 下面这个才是:(私有化一个sqlSession)
    • 4. 编写测试类
  • 三、spring整合mybatis 方式二
      • 1. 编写实现类UserDaoImpl 直接继承 SqlSessionDaoSupport
      • 2. 编写spring配置文件spring-dao.xml(相当于beans.xml)
        • applicationContext.xml是beans.xml配置文件的 整合!!!
      • 3. 编写测试类
  • 总结


前言:

什么是 MyBatis-Spring?

MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。

在这里插入图片描述


提示:以下是本篇文章正文内容:

一、mybatis流程

1.编写实体类
2.编写核心配置文件mybatis-config.xml
3.编写工具类MyBatisUtil
4.编写接口UserMapper
5.编写配置文件UserMapper.xml
6.编写测试类

1. 编写实体类

// 使用了lombok注解简化:
@Data
public class User {private int id;private String name;private String pwd;
}

2. 编写核心配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases><package name="nuc.ss.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=true;useUnicode=true;characterEncoding=utf8"/><property name="username" value="root"/><property name="password" value="admin"/></dataSource></environment></environments><mappers><package name="nuc.ss.dao"/></mappers>
</configuration>

3. 编写接口UserMapper

public interface UserMapper {public List<User> selectUser();
}

4. 编写配置文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="nuc.ss.dao.UserMapper"><select id="selectUser" resultType="User">select * from user</select></mapper>

5. 编写测试类

MyBatisUtils工具类的作用就是创建sqlSession
我们在测试类直接创建,逻辑和 MyBatisUtils工具类是差不多的。

@Test
public void selectUser() throws IOException {// MyBatisUtils工具类的作用就是创建sqlSession// 我们在测试类直接创建,逻辑和 MyBatisUtils工具类是差不多的。String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> userList = mapper.selectUser();for (User user: userList){System.out.println(user);}sqlSession.close();
}


二、spring整合mybatis 方式一

1.编写数据源配置
2.sqlSessionFactory
3.sqlSessionTemplate
4.需要给接口加实现类
5.将自己写的实现类,注入到spring当中
6.编写测试类

1. 在pom.xml导入maven依赖:mybatis-spring

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version>
</dependency>

2. 写一个接口实现类:UserDaoImpl(对于UserMapper接口)

在后面须要把这个类注入到spring容器里面(beams.xml)

这个类的作用:相当于mybatis的测试类,
得到sqlSession对象,执行UserMapper的方法。(执行sql语句)
在mybatis-spring里面,我们需要写这样一个方法,然后注入到spring里面,交给spring来管理。

public class UserDaoImpl implements UserMapper {//sqlSession不用我们自己创建了,Spring来管理private SqlSessionTemplate sqlSession;public void setSqlSession(SqlSessionTemplate sqlSession) {this.sqlSession = sqlSession;}public List<User> selectUser() {UserMapper mapper = sqlSession.getMapper(UserMapper.class);return mapper.selectUser();}
}

3. 编写spring配置文件spring-dao.xml(相当于beans.xml)

在这里插入图片描述

注意:上面图片第4步的将实现类注入到spring中,写错了(那个是第二种方式的)

下面这个才是:(私有化一个sqlSession)

<bean id="userDao" class="nuc.ss.dao.UserDaoImpl"><property name="sqlSession" ref="sqlSession"/>
</bean>

4. 编写测试类

// 1.获取spring容器
// 2.获取对象
// 3.使用对象执行方法
@Test
public void test(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper mapper = (UserMapper) context.getBean("userDao");List<User> user = mapper.selectUser();System.out.println(user);
}


三、spring整合mybatis 方式二

dao继承SqlSessionDaoSupport 类 , 直接利用 getSqlSession() 获得 , 然后直接注入SqlSessionFactory .
比起方式1 , 不需要管理SqlSessionTemplate , 而且对事务的支持更加友好

1. 编写实现类UserDaoImpl 直接继承 SqlSessionDaoSupport

// 1.获取sqlSession对象
// 2.得到mapper对象
// 3.利用mapper对象执行方法
public class UserDaoImpl extends SqlSessionDaoSupport implements UserMapper {public List<User> selectUser() {UserMapper mapper = getSqlSession().getMapper(UserMapper.class);return mapper.selectUser();}
}

2. 编写spring配置文件spring-dao.xml(相当于beans.xml)

applicationContext.xml是beans.xml配置文件的 整合!!!

在这里插入图片描述

3. 编写测试类

感觉 mybatis的测试类的步骤 和 mybatis-spring的测试类的步骤 好像!!!

// 1.获取spring容器
// 2.拿到mapper对象
// 3.利用mapper对象执行方法
@Test
public void test2(){ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper mapper = (UserMapper) context.getBean("userDao");List<User> user = mapper.selectUser();System.out.println(user);
}

总结

提示:这里对文章进行总结:

😊😊😊

http://www.lryc.cn/news/341066.html

相关文章:

  • 如何使用自定义Promptbooks优化您的安全工作流程
  • Text2sql的一些技巧
  • aws云靶场和一些杂记
  • 《AI编程类工具之四——GitHub copiot》
  • Unity类银河恶魔城学习记录13-1 p142 Save system源代码
  • 【C++杂货铺】继承
  • 快速上手Linux核心命令
  • 背 单 词 (考研词汇闪过)
  • 数据库工具解析之 OceanBase 数据库导出工具
  • [Algorithm][滑动窗口][长度最小的子数组] + 滑动窗口原理
  • .NET 发布,部署和运行应用程序
  • B树(B-tree)
  • EelasticSearch是什么?及EelasticSearch的安装
  • Python机器学习项目开发实战:如何进行语音识别
  • 2024年五一杯数学建模C题思路分析
  • 【代码】Python3|Requests 库怎么继承 Selenium 的 Headers (2024,Chrome)
  • JAVA程序设计-对象设计
  • 蓝桥杯2024年第十五届省赛真题-R 格式
  • Linux服务器硬件及RAID配置
  • 前端 vue单页面中请求数量过多问题 控制单页面请求并发数
  • HarmonyOS开发实例:【分布式手写板】
  • Unity TMP Inputfield 输入框 框选 富文本 获取真实定位
  • 如何在原生项目中集成flutter
  • 【设计模式】策略模式
  • Java面试八股之Iterator和ListIterator的区别是什么
  • 服务器中毒怎么办?企业数据安全需重视
  • k8s使用harbor私有仓库镜像 —— 筑梦之路
  • tcp bbr pacing 的对与错
  • MySQL学习-非事务相关的六大日志、InnoDB的三大特性以及主从复制架构
  • 【软件测试】MIL/HIL/PIL/SIL测试