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

【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注解,测试哪个类的方法就注入哪个是类)

相关文章:

  • 房产销售|基于Springboot+vue的房产销售系统平台(源码+数据库+文档)
  • 向量数据库1:向量数据库的选型
  • table表格实现多行合并效果实现
  • Java 集合数据处理技巧:使用 Stream API 实现多种操作
  • 八大经典排序算法
  • LeetCode:2595.奇偶位数
  • 云原生DevOps:Zadig架构设计与企业实践分析
  • 七星棋牌源码高阶技术指南:6端互通、200+子游戏玩法深度剖析与企业级搭建实战(完全开源)
  • 适用于复杂背景的YOLOv8改进:基于DCN的特征提取能力提升研究
  • Windows网络安全基础
  • 向 OpenAI ChatGPT 提问如何学习黑客
  • 硬盘识别不出来了怎么办?硬盘读不出来的解决方法
  • 基于Flask的租房信息可视化系统的设计与实现
  • 【项目实践06】【Retrofit2 框架的使用】
  • Linux-C/C++《C++/1、C++基础》(C++语言特性、面向对象等)
  • 【人工智能】用Python迈向轻量化深度学习——模型压缩与量化实战指南
  • 植物大战僵尸杂交版v3.2.1最新版本(附下载链接)
  • java简单实现请求deepseek
  • MySQL多列索引查询优化
  • express+Vue2进行项目实战-景点后台管理系统(上篇)
  • 如何做网站二维码/seo外包方法
  • 怎样做一家迷你的特卖网站/百度电脑版登录网站
  • 一级a做爰片免费网站短视频播放/网络营销公司如何建立
  • 免费自助搭建网站/怎么seo关键词优化排名
  • 青海网站开发建设/社区营销
  • 网站页面术语/环球军事网最新军事新闻最新消息