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

【JavaEE进阶】MyBatis入门

目录

🌴前言

🌲什么是MyBatis?

🌳准备工作

🚩创建工程

🚩配置数据库连接字符串

🚩数据准备

🚩编写持久层代码

🍃单元测试


🌴前言

在应⽤分层学习时,我们了解到web应⽤程序⼀般分为三层,即:Controller、Service、Dao.

之前的案例中,请求流程如下:浏览器发起请求,先请求Controller,Controller接收到请求之后,调⽤ Service进⾏业务逻辑处理,Service再调⽤Dao,但是Dao层的数据是Mock的,真实的数据应该从数据库中读取.

我们学习MySQL数据库时,已经学习了JDBC来操作数据库,但是JDBC操作太复杂了

JDBC操作简单回顾:

  • 1. 创建数据库连接池DataSource
  • 2. 通过DataSource获取数据库连接Connection
  • 3. 编写要执⾏带?占位符的SQL语句
  • 4. 通过Connection及SQL创建操作命令对象Statement
  • 5. 替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值
  • 6. 使⽤Statement执⾏SQL语句
  • 7. 查询操作:返回结果集ResultSet,更新操作:返回更新的数量
  • 8. 处理结果集
  • 9. 释放资源

🌲什么是MyBatis?

MyBatis是⼀款优秀的持久层框架,⽤于简化JDBC的开发。

  • MyBatis本是Apache的⼀个开源项⽬iBatis,2010年这个项⽬由apache迁移到了google code,并且改名为MyBatis。2013年11⽉迁移到Github
  • 官网:MyBatis中文网

在上⾯我提到⼀个词:持久层

  • 持久层:指的就是持久化操作的层,通常指数据访问层(dao),是⽤来操作数据库的.

简单来说MyBatis是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库⼯具

接下来,我们就通过⼀个⼊⻔程序,让⼤家感受⼀下通过Mybatis如何来操作数据库

🌳准备工作

🚩创建工程

创建springboot⼯程,并导⼊mybatis的起步依赖、mysql的驱动包

这里只演示导入mybatis的起步依赖、mysql的驱动包。不会创建springboot的小伙伴参考博主写的 【JavaEE进阶】第一个Spring Boot程序_java ee boot-CSDN博客

项⽬⼯程创建完成后,⾃动在pom.xml⽂件中,导⼊Mybatis依赖和MySQL驱动依赖

此时运行项目的话就会报错:

只要把pom文件中关于mybatis的依赖注释掉,就可以运行,此处不在展示

我们在添加完mybatis依赖之后,需要进行数据库的配置

🚩配置数据库连接字符串

Mybatis中要连接数据库,需要数据库相关参数配置

  • MySQL驱动类
  • 登录名
  • 密码
  • 数据库连接字符串

application.yml配置文件如下:

🚩数据准备

创建用户表,并创建对应的实体类User

创建userinof表如下

当前已经创建好了一张表,若想做查询操作,那么查询出来需要放到一个对象中,那么就需要创建对应的实体类UserInfo

由于数据库单词之间采用蛇形,而java单词之间喜欢采用驼峰,所以这里我们进行一个简单的转换。其他实体类的属性名与表中的字段名⼀⼀对应

代码:

🚩编写持久层代码

我们通过mybatis来实现:select * from userinfo;

在项⽬中,创建持久层接⼝UserInfoMapper

我们在该接口中提供一个方法,希望用它来完成上述sql语句的查询

代码:

Mybatis的持久层接⼝规范⼀般都叫XxxMapper

@Mapper注解:表⽰是MyBatis中的Mapper接⼝

  • 程序运⾏时,框架会⾃动⽣成接⼝的实现类对象(代理对象),并给交Spring的IOC容器管理
  • @Select注解:代表的就是select查询,也就是注解对应⽅法的具体实现内容.

🍃单元测试

我们需要测试哪一个方法,就在该方法范围中直接生成测试代码即可。

第一步:在{}范围内点击右键

第二步:

第三步:

第四步:勾选你需要生成测试的方法(当前只有写了这一个方法),点击OK即可

此时就会在Test文件中,生成测试类:测试类上添加了注解@SpringBootTest,该测试类在运⾏时,就会⾃动加载Spring的运⾏环境.我们通过@Autowired这个注解,注⼊我们要测试的类,就可以开始进⾏测试了需要加上@SpringBootTest注解

编写测试代码:

运行结果:

总结:Mybatis操作步骤

  • 1. 引入依赖(mybatis/mysql)
  • 2. 配置数据库相关信息
  • 3. 数据准备,实体类准备
  • 4. 编写Mapper代码(编写的是接口,@Mapper注解)
  • 5. 编写测试代码(@SpringBootTest注解,测试哪个类的方法就注入哪个是类)

http://www.kler.cn/a/550691.html

相关文章:

  • 【Python爬虫(10)】解锁XPath:Python爬虫的精准导航仪(京东、淘宝实例)
  • DeepSeek本地企业知识库搭建思路
  • 机器学习_17 K近邻算法知识点总结
  • 【R语言】GitHub Copilot安装-待解决
  • 【ETL】从理论到Python实践的数据处理
  • vue 判断字符串开头是http或者https
  • 如何通过阿里云内容安全在数字时代获得“第一防线”?
  • NBT群落物种级丰度鉴定新方法sylph
  • Qt常用控件之按钮QPushButton
  • 【Java基础】数组性能优化
  • STM32 CubeMx配置串口收发使用DMA并调用Idle模式(二)
  • qt小项目:表白窗口(窗口,信号与槽)
  • UI自动化教程 —— 元素定位技巧:精确找到你需要的页面元素
  • Node.js 中的 fs 模块详解
  • AI时代:前端开发的职业发展路径拓宽
  • 洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格
  • Qt 中使用 SQLite 数据库的完整指南
  • 【MyBatis】预编译SQL与即时SQL
  • 『大模型笔记』Jason Wei: 大语言模型的扩展范式!
  • 使用Navicat for MySQL工具连接本地虚拟机上的MySQL