二、入门案例

news2024/9/28 1:26:38

文章目录

  • 二、入门案例
    • 1、开发环境
    • 2、创建数据库及表
      • 2.1 创建表
      • 2.2 添加数据
    • 3、创建Spring Boot工程
      • 3.1 初始化工程
      • 3.2 引入依赖
      • 3.3 idea中安装lombok插件
    • 4、编写代码
      • 4.1 配置application.yml
      • 4.2 启动类
      • 4.3 添加实体
      • 4.4 添加mapper
      • 4.5 测试
      • 4.6 添加日志


【尚硅谷】MyBatisPlus教程-讲师:杨博超

失败,是正因你在距成功一步之遥的时候停住了脚步。

二、入门案例

1、开发环境

IDE:idea 2022.3.1
JDK:JDK8
构建工具:maven 3.8.6
MySQL版本:MySQL 8.0.9
Spring Boot:2.6.3
MyBatis-Plus:3.5.1

2、创建数据库及表

2.1 创建表

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.2 添加数据

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');

3、创建Spring Boot工程

3.1 初始化工程

使用 Spring Initializr 快速初始化一个 Spring Boot 工程

在这里插入图片描述

3.2 引入依赖

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>3.5.1</version>
	</dependency>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
</dependencies>

3.3 idea中安装lombok插件

在这里插入图片描述

4、编写代码

4.1 配置application.yml

spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?userUnicode=true&characterEncoding=utf8&useSSL=true&serverTime=GMT%2B8
    username: root
    password: root

注意:

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
否则运行测试用例报告如下错误:
java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or
represents more

4.2 启动类

在Spring Boot启动类中添加@MapperScan注解,扫描mapper包

@SpringBootApplication
@MapperScan("pers.tianyu.mybatisplus.mapper")
public class MybatisPlusDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusDemoApplication.class, args);
    }
    
}

4.3 添加实体

@Data //lombok注解
public class User {

	private Long id;
	private String name;
	private Integer age;
	private String email;
	
}

User类编译之后的结果:
在这里插入图片描述

4.4 添加mapper

BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的实体类型

@Repository
public interface UserMapper extends BaseMapper<User> {

}

4.5 测试

@SpringBootTest
public class MybatisPlusTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelectList() {
        //selectList()根据MP内置的条件构造器查询一个list集合,null表示没有条件,即查询所有
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }
}

结果:
在这里插入图片描述

注意:

IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。
为了避免报错,可以在mapper接口上添加 @Repository 注解

4.6 添加日志

在application.yml中配置日志输出

# 配置MyBatis日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盘点ERP系统应具备的10个核心功能

ERP系统在数据管理解决方案中名列前茅。对于许多企业来说&#xff0c;ERP是数据分析、自动化和全面基础设施整合的理想解决方案。还不知道如何选择正确的ERP系统解决方案&#xff1f;别担心&#xff0c;本文盘点了ERP系统应具备的10个核心功能。 1. 集成 该ERP功能是该解决方…

怎么录屏幕视频,不要错过这4种简单的电脑录屏方法

屏幕截图和屏幕录制是我们日常生活中常用的一种手段。比如把自己感兴趣的视频录下来和朋友们分享&#xff0c;或者录制操作视频教程让大家知道怎么做。那怎么录屏幕视频&#xff0c;今天在这里小编为大家推荐4种简单的电脑录屏方法&#xff0c;有需要的小伙伴可以往下看看。电脑…

如何学习批判性思维?——以是什么、为什么、怎么样为视角

写这篇文章有两个目的&#xff1a; 希望对研究者做课题有所帮助。希望整个社会能更多地去思考别人的观点到底成不成立。这点是我们很缺乏的。我会列出国内常见的一些逻辑谬论来加以阐述。 &#xff08;图&#xff1a;批判一个观点的统一框架&#xff09; 一、逻辑陈述划分 …

第五届字节青训营笔试后端编程练习题解

文章目录前言T1.36进制加法&#xff08;模拟&#xff09;题面思路代码T2.电影院选座&#xff08;DFS&#xff09;题面思路代码T3.IP地址&#xff08;DFS&#xff09;题面思路代码前言 前段时间&#x1f40f;了&#xff0c;今天简单写了一下&#xff0c;不知道如何提交代码进行…

新年新玩法,数组“招婿”:老许,你要老婆不要?

文章目录前言一、电梯“招婿”启示风波1.1、寻找“一位又高又帅的 IT 同行人员”1.2、数组“招婿”核心代码1.3、代码全是错误&#xff0c;水平不高二、Java 声明、创建、初始化数组2.1、数组声明存在的语法错误2.2、数组声明、创建、初始化的正确方式三、Java 中对于不同数据类…

尚医通-医院详情-科室接口-显示科室前端整合(二十四)

目录&#xff1a; &#xff08;1&#xff09;医院详情-功能 实现 &#xff08;2&#xff09;医院排班-需求分析 &#xff08;3&#xff09;医院排班-科室接口开发 &#xff08;4&#xff09;医院排班-显示科室前端整合 &#xff08;1&#xff09;医院详情-功能 实现 在Ho…

基于KT6368A芯片开发SOP8蓝牙自拍杆方案记录总结

一、简介给客户开发一款蓝牙自拍杆的方案芯片&#xff0c;使用KT6368A单芯片解决。两种实现逻辑1、由客户的遥控MCU来控制蓝牙芯片的开启和关闭 2、由KT6368A蓝牙芯片自己完成所有的事情&#xff0c;分两个按键&#xff0c;一个按键短按开机&#xff0c;短按关机。第二个按键实…

【SPI实验--数码管】

SPI实验--数码管一、SPI概念二、SPI硬件连接三、SPI总线通信协议四、SPI四种通信模式五、代码实现数码管一、SPI概念 1.SPI总线是Motorola首先提出的全双工三线制/四线制同步串行总线 2.采用主从模式&#xff08;Master Slave&#xff09;架构&#xff0c;支持多slave模式应用…

预测2023年Web3的9大发展趋势

Crypto 和 DeFi 在 2022 年深陷熊市&#xff0c;但 Web3 方面的需求刚刚才开始获得关注。在过去的 12 个月里&#xff0c;Web3 相关的搜索与 2021 年底的峰值相比&#xff0c;一直保持在 30% 以内&#xff0c;下一个上升趋势可能正在到来。下面我列出了目前势头正旺的 9 个 Web…

PIPE接口基本描述

信号名方向描述TxDataIN并行数据输入总线TxDataValidIN1&#xff1a;表示cycle数据有效&#xff1b;0&#xff1a;表示cycle数据无效RxDataOUT并行数据输出总线RxValidOUT1&#xff1a;表示符号锁及当RxDataValid有效时&#xff0c;数据有效 PHY MODEINPHY STATUSOUT SerDesA…

java swing电子商务系统

一、项目简介 本项目是一套基于java swing的电子商务系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;ec…

opencv案例实战——银行卡模式匹配识别

系列文章目录 1.图像读取及其通道与灰度 2.图像填充与图像融合 3.图像滤波 4.图像阈值 5.腐蚀与膨胀 6.图像梯度 7.边缘检测 8.轮廓与轮廓特征 银行卡模式匹配识别系列文章目录前言案例介绍划分模板1.思路2.获取边缘3.获取外接矩形图像预处理切割礼帽操作分割数字块sobel算子膨…

LeetCode题解 二叉树(十):654 最大二叉树;617合并二叉树

654 最大二叉树 medium 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构…

RHCEansible 编写playbook---yaml

YAML 语言特性 YAML的可读性好 YAML和脚本语言的交互性好 YAML使用实现语言的数据类型 YAML有一个一致的信息模型 YAML易于实现 YAML可以基于流来处理 YAML表达能力强&#xff0c;扩展性好YAML的三种数据结构 对象&#xff1a; 键值对的集合&#xff0c;又称为映射、哈希、字典…

Map数据结构详解

Map Object本质上是键值对的集合&#xff08;Hash结构&#xff09;&#xff0c;但Object只能将字符串当做键&#xff0c;这就给Object带来了很大的限制。 let data {} let s {name : 东方不败} data[s] 西方求败// 如果键传入非字符串的值&#xff0c;会自动为字符串 cons…

思科路由器DHCPv6服务配置

配置如下 Router>ena Router#conf t Router(config)#host R1 R1(config)#ipv6 unicast-routing R1(config)#int g0/0 R1(config-if)#ipv6 add 2001:1::1/64 R1(config-if)#no sh R1(config-if)#exit R1(config)#service dhcp R1(config)#ipv6 local pool v6pool …

CTF中的PHP特性函数(中)

前言 上篇文章给大家带来了PHP中最基本的特性&#xff0c;不知道大家学习的怎样了&#xff0c;回顾上文&#xff0c;我们讲了MD5强弱碰撞以及正则匹配的绕过&#xff0c;总体来看还是很简单的&#xff0c;下面给大家带来新的PHP特性讲解&#xff0c;会稍微比上一篇难一些。 i…

开源工作流引擎如何支撑企业级 Serverless 架构?

作者&#xff1a;董天欣&#xff08;雾雾&#xff09; Serverless 应用引擎&#xff08;SAE&#xff09;是一款底层基于 Kubernetes&#xff0c;实现了 Serverless 架构与微服务架构结合的云产品。作为一款不断迭代的云产品&#xff0c;在快速发展的过程中也遇到了许多挑战。如…

2022年统一大市场研究报告

第一章 行业概况 国内统一大市场指的是在全国范围内&#xff0c;在充分竞争以及由此形成的社会分工基础上&#xff0c;各地区市场间、各专业市场间形成了相互依存、相互补充、相互开放、相互协调的有机的市场体系。在这种市场体系下&#xff0c;商品和要素能够按照价格体系的调…

干货 | 在Docker 上搭建持续集成平台 Jenkins

Docker是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发&#xff0c;Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的系统。Docker 是世界领先的软件容器平台&#xff0c;Docker 官方的口号是”调试你的应用&…