李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
02.MyBatis-Plus入门案例
Leefs
2022-12-10 PM
1314℃
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://lilinchao.com/archives/2678.html
上一篇
01.MyBatis-Plus简介
下一篇
03.MyBatis-Plus基本CRUD
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
DataWarehouse
SpringBoot
ClickHouse
Spark
Spark SQL
Linux
正则表达式
算法
JavaWeb
Java编程思想
数学
Jenkins
Filter
SpringCloud
Jquery
容器深入研究
前端
Yarn
Git
递归
JavaWEB项目搭建
MyBatisX
Flume
线程池
ajax
Nacos
Spark RDD
Spring
稀疏数组
Kafka
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭