【Java EE】MyBatis 入门

文章目录

🍀什么是MyBatis?

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

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

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

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

🌲如何使用MyBatis

🌸引人Mybatis的相关依赖

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

Mybatis 是⼀个持久层框架, 具体的数据存储和数据操作还是在MySQL中操作的, 所以需要添加

MySQL驱动

SpringBoot 3.X对⽤MyBatis版本为3.X

对应关系参考:https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

css 复制代码
<!--Mybatis 依赖包-->
<dependency>
 <groupId>org.mybat
 <artifactId>mybati
 <version>3.0.3</ve
</dependency>
<!--mysql驱动包-->
<dependency>
 <groupId>com.mysql</groupId>
 <artifactId>mysql-connector-j</artifactId>
 <scope>runtime</scope>
</dependency>

🌸配置Mybatis(数据库连接信息)

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

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

如果是application.yml⽂件, 配置内容如下:

css 复制代码
# 数据库连接配置
spring:
 datasource:
 url: jdbc:mysql://127.0.0.1:3306/mybatis_test?
characterEncoding=utf8&useSSL=false
 username: root
 password: root
 driver-class-name: com.mysql.cj.jdbc.Driver

注意事项

如果使⽤ MySQL 是 5.x 之前的使⽤的是"com.mysql.jdbc.Driver",如果是⼤于 5.x 使⽤的

是"com.mysql.cj.jdbc.Driver".

如果是application.properties⽂件, 配置内容如下

css 复制代码
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_test?
characterEncoding=utf8&useSSL=false
#连接数据库的⽤⼾名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=root

🌸编写SQL语句(注解/XML)

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

css 复制代码
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserInfoMapper {
 //查询所有⽤⼾
 @Select("select username, `password`, age, gender, phone from userinfo")
 public List<UserInfo> queryAllUser();
}

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

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

• 程序运⾏时, 框架会⾃动⽣成接⼝的实现类对象(代理对象),并给交Spring的IOC容器管理

• @Select注解:代表的就是select查询,也就是注解对应⽅法的具体实现内容.

🌸单元测试

在创建出来的SpringBoot⼯程中,在src下的test⽬录下,已经⾃动帮我们创建好了测试类 ,我们可以

直接使⽤这个测试类来进⾏测试.

css 复制代码
import com.example.demo.mapper.UserInfoMapper;
import com.example.demo.model.UserInfo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class DemoApplicationTests {
 @Autowired
 private UserInfoMapper userInfoMapper;
 @Test
 void contextLoads() {
 List<UserInfo> userInfoList = userInfoMapper.queryAllUser();
 System.out.println(userInfoList);
 }
}

测试类上添加了注解 @SpringBootTest,该测试类在运⾏时,就会⾃动加载Spring的运⾏环境.

我们通过@Autowired这个注解, 注⼊我们要测试的类, 就可以开始进⾏测试了

使⽤Idea ⾃动⽣成测试类

除此之外, 也可以使⽤Idea⾃动⽣成测试类

  1. 在需要测试的Mapper接⼝中, 右键 -> Generate -> Test
  1. 选择要测试的⽅法, 点击 OK
  1. 书写测试代码
css 复制代码
1 import com.example.demo.model.UserInfo;
2 import org.junit.jupiter.api.Test;
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.boot.test.context.SpringBootTest;
5
6 import java.util.List;
7
8 @SpringBootTest
9 class UserInfoMapperTest {
10 @Autowired
11 private UserInfoMapper userInfoMapper;
12
@Test
 void queryAllUser() {
 List<UserInfo> userInfoList = userInfoMapper.queryAllUser();
 System.out.println(userInfoList);
 }
}

🌳打印日志

在Mybatis当中我们可以借助⽇志, 查看到sql语句的执⾏、执⾏传递的参数以及执⾏结果

在配置⽂件中进⾏配置即可

css 复制代码
mybatis:
 configuration: # 配置打印 MyBatis⽇志
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

如果是application.properties, 配置内容如下

css 复制代码
#指定mybatis输出⽇志的位置, 输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

⭕总结

感谢大家的阅读,希望得到大家的批评指正,和大家一起进步,与君共勉!

相关推荐
几层山下9 小时前
WPS的word文档转pdf java实现不乱格式生成-已解决
java·pdf·word·wps
BioRunYiXue9 小时前
科研干货 | IC50全面解读:概念解析、实验设计与数据分析要点
java·开发语言·javascript·人工智能·算法·数据挖掘·数据分析
边境悍匪9 小时前
蜗牛学苑 Java 智能体学习 Day34|AOP 进阶、权限思维导图复盘
java·开发语言·spring boot·学习
天天被压力9 小时前
【零依赖量化数据实战 #31】沪深A实时盘口全景:逐笔·全盘实时·最新价·历史逐笔
java·人工智能·python
SamDeepThinking9 小时前
HashMap 分组操作的演进:从三次查找到一次调用
java·后端·程序员
Zane19949 小时前
自己写一个 java.lang.String,为什么永远替换不掉 JDK 那个
java·后端
吴声子夜歌10 小时前
Guava——并发(一)
java·guava
摇滚侠10 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 概述 阅读笔记 37
spring boot·笔记·mybatis
天空属于哈夫克310 小时前
企业微信API:企业微信如何实现自动化运营?
java·自动化·企业微信
lhldsg10 小时前
相册印刷实战指南:从设计规范到系统落地全流程解析
java·小程序·架构·设计规范