李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
02.MyBatis-Plus入门案例
Leefs
2022-12-10 PM
722℃
0条
[TOC] ### 一、环境准备 #### 1.1 开发环境 + IDE:idea 2018.3 + JDK:JDK8+ + 构建工具:maven 3.5.4 + MySQL版本:MySQL 5.7 + Spring Boot:2.7.6 + MyBatis-Plus:3.5.1 #### 1.2 创建数据库及表 **(1)创建数据库及表** ```sql CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; use `mybatis_plus`; CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` **(2) 添加数据** ```sql INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com'); ``` `User` 表结构如下: | id | name | age | email | | ---- | ------ | ---- | ------------------ | | 1 | Jone | 18 | test1@baomidou.com | | 2 | Jack | 20 | test2@baomidou.com | | 3 | Tom | 28 | test3@baomidou.com | | 4 | Sandy | 21 | test4@baomidou.com | | 5 | Billie | 24 | test5@baomidou.com | ### 二、创建Spring Boot工程 #### 2.1 初始化工程 + 使用 Spring Initializr 快速初始化一个 Spring Boot 工程 ![02.MyBatis-Plus入门案例02.jpg](https://lilinchao.com/usr/uploads/2022/12/75104696.jpg) + Project Metadata设置 ![02.MyBatis-Plus入门案例03.jpg](https://lilinchao.com/usr/uploads/2022/12/1054996869.jpg) + 选择创建SpringBoot的版本 ![02.MyBatis-Plus入门案例04.jpg](https://lilinchao.com/usr/uploads/2022/12/1586126533.jpg) 此处先不需要引入项目所需依赖包,下面会通过pom.xml直接导入 + 直接点击完成即可 ![02.MyBatis-Plus入门案例05.jpg](https://lilinchao.com/usr/uploads/2022/12/114746012.jpg) #### 2.2 引入依赖 ```xml
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
com.baomidou
mybatis-plus-boot-starter
3.5.1
org.projectlombok
lombok
true
mysql
mysql-connector-java
runtime
``` #### 2.3 idea中安装lombok插件 ![02.MyBatis-Plus入门案例06.jpg](https://lilinchao.com/usr/uploads/2022/12/441006412.jpg) 点击【installed】进行安装即可。 ### 三、编写代码 #### 3.1 配置application.yml ```yaml spring: # 配置数据源信息 datasource: # 配置数据源类型 type: com.zaxxer.hikari.HikariDataSource # 配置连接数据库信息 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false username: root password: 123456 ``` **注意** **(1)驱动类driver-class-name** + spring boot 2.0(内置jdbc5驱动),驱动类使用:`driver-class-name: com.mysql.jdbc.Driver` + spring boot 2.1及以上(内置jdbc8驱动),驱动类使用:`driver-class-name: com.mysql.cj.jdbc.Driver` 否则运行测试用例的时候会有 WARN 信息 **(2)连接地址url** + **MySQL5.7版本的url** ``` jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false ``` + **MySQL8.0版本的url** ``` jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false ``` + **serverTimezone**:设置时区 ``` //北京时间东八区 serverTimezone=GMT%2B8 //上海时间 serverTimezone=Asia/Shanghai ``` 否则运行测试用例报告如下错误: ``` java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more ``` #### 3.2 添加实体 ```java @Data //lombok注解 public class User { private Long id; private String name; private Integer age; private String email; } ``` #### 3.3 添加mapper > BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的实体类型 ```java public interface UserMapper extends BaseMapper
{ } ``` #### 3.4 启动类 > 在Spring Boot启动类中添加@MapperScan注解,扫描mapper包 ```java @SpringBootApplication @MapperScan("com.lilinchao.mybatisplusdemo.mapper") public class MybatisPlusDemoApplication { public static void main(String[] args) { SpringApplication.run(MybatisPlusDemoApplication.class, args); } } ``` #### 3.5 测试 ```java @SpringBootTest public class MybatisPlusTest { @Autowired private UserMapper userMapper; @Test public void testSelectList(){ //通过条件构造器查询一个list集合,若没有条件,则可以设置null为参数 List
users = userMapper.selectList(null); users.forEach(System.out::println); } } ``` **运行结果** ``` User(id=1, name=Jone, age=18, email=test1@baomidou.com) User(id=2, name=Jack, age=20, email=test2@baomidou.com) User(id=3, name=Tom, age=28, email=test3@baomidou.com) User(id=4, name=Sandy, age=21, email=test4@baomidou.com) User(id=5, name=Billie, age=24, email=test5@baomidou.com) ``` **注意** > IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。 > > 为了避免报错,可以在mapper接口上添加 @Repository 注解 ```java @Repository public interface UserMapper extends BaseMapper
{ } ``` #### 3.6 添加日志 + **在`application.yml`中配置日志输出** ```yaml #配置mybatis日志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` **重新运行测试代码,输出结果** ``` ==> Preparing: SELECT id,name,age,email FROM user ==> Parameters: <== Columns: id, name, age, email <== Row: 1, Jone, 18, test1@baomidou.com <== Row: 2, Jack, 20, test2@baomidou.com <== Row: 3, Tom, 28, test3@baomidou.com <== Row: 4, Sandy, 21, test4@baomidou.com <== Row: 5, Billie, 24, test5@baomidou.com <== Total: 5 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@639aba11] User(id=1, name=Jone, age=18, email=test1@baomidou.com) User(id=2, name=Jack, age=20, email=test2@baomidou.com) User(id=3, name=Tom, age=28, email=test3@baomidou.com) User(id=4, name=Sandy, age=21, email=test4@baomidou.com) User(id=5, name=Billie, age=24, email=test5@baomidou.com) ``` *附参考文章链接* *《尚硅谷MyBatisPlus教程》*
标签:
MyBatis
,
MyBatis-Plus
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/2678.html
上一篇
01.MyBatis-Plus简介
下一篇
03.MyBatis-Plus基本CRUD
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Jenkins
VUE
Java阻塞队列
数据结构和算法
Netty
查找
JavaScript
Hive
DataX
Spark Streaming
Spark
持有对象
高并发
JavaSE
Redis
MyBatis-Plus
Nacos
Thymeleaf
Flink
Hbase
Java工具类
序列化和反序列化
DataWarehouse
Typora
算法
Tomcat
随笔
Kafka
FastDFS
BurpSuite
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞