MyBatisPlus ---- 入门案例

news2025/1/16 16:53:22

MyBatisPlus ---- 入门案例

  • 1. 开发环境
  • 2. 创建数据库及表
    • a>创建表
    • b>添加数据
  • 3. 创建SpringBoot工程
    • a>初始化工程
    • b>引入依赖
    • c>idea中安装lombok插件
  • 4. 编写代码
    • a>配置application.yml
    • b>启动类
    • c>添加实体
    • d>添加mapper
    • e>测试
    • f>添加日志

1. 开发环境

IDE:idea 2022
JDK:JDK8+
构建工具:maven 3.8.1
MySql 版本:MySql 8
Spring Boot:2.6.3
MyBatis 版本:MyBatis 3.5.1

2. 创建数据库及表

a>创建表

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;

在这里插入图片描述

b>添加数据

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. 创建SpringBoot工程

a>初始化工程

使用 Spring Initializr 快速初始化一个 SpringBoot 工程
在这里插入图片描述
在这里插入图片描述

b>引入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--MyBatisPlus启动器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!--lombok用于简化实体类开发-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

c>idea中安装lombok插件

在这里插入图片描述

4. 编写代码

a>配置application.yml

# 应用名称
#spring.application.name=MyBatisPlus

spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置连接数据库信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
    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

b>启动类

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

package com.fickler.mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.fickler.mybatisplus.mapper")
public class MyBatisPlusApplication {

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

}

c>添加实体

package com.fickler.mybatisplus.pojo;

import lombok.Data;

/**
 * @author dell
 * @version 1.0
 */

@Data
public class User {

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

}

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

d>添加mapper

package com.fickler.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fickler.mybatisplus.pojo.User;

/**
 * @author dell
 * @version 1.0
 */
public interface UserMapper extends BaseMapper<User> {
}

e>测试

package com.fickler.mybatisplus;

import com.fickler.mybatisplus.mapper.UserMapper;
import com.fickler.mybatisplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

/**
 * @author dell
 * @version 1.0
 */

@SpringBootTest
public class MyBatisPlusTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelectList(){

        List<User> users = userMapper.selectList(null);
        users.forEach(user -> System.out.println(user));

    }

}

结果
在这里插入图片描述

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

f>添加日志

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

在这里插入图片描述

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

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

相关文章

了解 Oracle 中单引号与双引号的用法,一篇文章教会你!

无论测试或者开发&#xff0c;对数据库的增删改查都是家常便饭。但有些小知识是经常被忽略&#xff0c;却又不能不去了解的&#xff0c;例如单引号和双引号的用法和区别&#xff0c;看完这一篇&#xff0c;你肯定会有收获。 首先我们要区别一个概念&#xff0c;即单引号(‘)和双…

docker应用部署示例

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器&#xff0c;设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

如何通过文档管理控制合同管理

如何通过文档管理控制合同管理 如果您的公司处理的合同比以往任何时候都多&#xff0c;那么您并不孤单。这种指数级增长的原因包括日益增长的监管要求、供应链问题以及全球化带来的业务关系的复杂性。此外&#xff0c;员工更频繁地换工作&#xff0c;因此&#xff0c;需要管理更…

Unity实用小工具—以对象形式操作Sqlite

一、介绍 1.1、版本说明&#xff1a;使用的Unity版本为个人版2020.3.39&#xff0c;数据库为Sqlite&#xff08;一个轻量级跨平台数据库&#xff09;&#xff0c;Sqlite的查看管理工具可以在网上下载https://dbeaver.io/download/&#xff0c;可以直接保存下来使用。 1.2、数…

微服务(四)——统一网关

目录1. 概念2. 实现网关1. 实现流程2. 小结3. 断言工厂4. 过滤器工厂1. GatewayFilter2. GlobalFilter3. 过滤器的执行顺序5. 解决跨域问题1. 概念 网关的作用&#xff1a; 认证、鉴权服务路由、负载均衡请求限流 网关的实现&#xff1a; gateway 基于Spring5中提供的WebFlu…

linux 设置登录提示语

勿以恶小而为之&#xff0c;勿以善小而不为---- 刘备 /etc/motd 文件里面 保存的是 登录后提示语 vim /etc/motd可以放置自定义的 文字信息 -------------------- 每天都要加油努力噢&#xff0c;岳泽霖!!! -------------------登录之后&#xff0c;就会展示信息: 参考链接: …

【Linux】Linux命令行git的使用

前进才是唯一的方向 文章目录一、git是什么&#xff1f;二、gitee仓库创建1.新建仓库2.复制仓库链接3.克隆远端仓库到本地来三、git提交代码1.下载git2. 配置用户名和邮箱&#xff08;否则git commit无法正常使用&#xff09;3. git提交代码三板斧3.1 git add&#xff08;将代…

git merge合并开发分支到上线分支遇到的问题,提示 no new changes

git merge 后 push 到 Gerrit 失败&#xff0c;提示 no new changes 解决思路&#xff1a; 分析&#xff1a;no new changes 的意思&#xff0c;是说&#xff0c;这个合并&#xff0c;是个线性的合并。而合并的那些历史的 commit 节点&#xff0c;在 gerrit 上都已经评审过了&…

在Linux中安装ShowDoc

在Linux中&#xff0c;有两种方式安装ShowDoc。第一种是自动脚本安装&#xff0c;第二种是手动安装。官方推荐使用自动脚本安装ShowDoc。如果自动脚本安装ShowDoc失败&#xff0c;可以考虑手动安装ShowDoc。 自动脚本安装ShowDoc 自动脚本利用docker来安装运行环境&#xff0…

酒鬼私定,只是酒鬼酒一次破圈营销?

围坐红泥小火炉&#xff0c;煮酒谈今夕。 过去一年多时间&#xff0c;经历了业绩向上&#xff0c;股市向下的反差时期后&#xff0c;越来越多人意识到白酒行业已步入存量时代。 2022年前三季度&#xff0c;中国规模以上白酒行业实现总产量487.9万千升&#xff0c;同比减少2.5…

proxychains for Windows

proxychains for Windows背景介绍项目地址使用scoop安装proxychains for windows验证命令行能否调用proxychains配置代理使用为Windows终端配置proxy--适用于cmd为Windows终端配置proxy--适用于PowerShellpowershell配置变量背景介绍 有时候Windows下的一些命令行程序想要挂代…

正大国际期货:外盘德指期货交易应该怎么做?

作为一个期货交易者&#xff0c;想要在市场上生存下来&#xff0c;就必须针对各种可能性都有所准备。比如&#xff0c;如果你强烈看涨&#xff0c;就必须准备好应对市场打你个冷不防的可能。相反&#xff0c;如果你对眼前的涨势高度怀疑&#xff0c;也不能彻底排除上演一场黑天…

ElasticSearch安装和部署和整合springboot

因为项目每次用到&#xff0c;每次重新搭都踩坑&#xff0c;特此记录一些坑&#xff0c;防止花费大量时间在搭建和整合上面安装 准备好压缩包elasticsearch-6.2.4解压 在config文件夹下配置文件elasticsearch.yml&#xff0c;可更改自行喜欢的端口和配置账号密码安装中文分词器…

git笔记

coderwhy听课笔记 什么是集中式 分布式 集中式是将整个仓库放到服务器&#xff1b;分布式是每台电脑上都有对应的仓库&#xff0c;可以在本地提交&#xff0c;之后把本地的仓库同步到服务器的仓库里 git安装 除了能使用git命令&#xff0c;还安装了git bash,git GUI git ba…

mysql数据库有关教程

我们打开Navicat 我使用的是16版本的,我们选择连接,我们新建连接 这里会有菜单栏目,比如说常规,高级,数据,SSL,SSH HTTP 其他的我们先不看,后期有机会我会解释的,先看常规 连接名字,就是你可以自己命名一个名字,也可以不写,比如说连接名字 studentdemo1 主机默认是localhos…

NetInside网络攻击分析帮您轻松发现可疑主机

分析概要 分析概要从以下三点做介绍。 分析内容 NetInside网络流量分析设备采集的流量。 分析时间 报告分析时间范围为&#xff1a;2020-09-28 07:58:00-11:58:00&#xff0c;时长共计3小时。 分析目的 本报告主要分析目的&#xff1a;查找和定位存在可疑现象的主机、查…

SHELL脚本学习 --- 第二天作业

SHELL脚本学习 — 第二天作业 思路&#xff1a; 这四道题都有条件判断的过程&#xff0c;可以使用if&#xff0c;也可以使用与运算。 linux的shell脚本中&#xff0c;与运算前一个命令执行成功&#xff0c;则执行后一个命令&#xff0c;反之则不执行&#xff0c;因此可以起到类…

cdb.exe的利用

cdb.exe的利用 0x01 简介 cdb 是安装 windows debugging tools 时自带的一个命令行调试工具&#xff0c;由微软签发证书。 0x02 cdb.exe加载shellcode ​ cdb.exe是调试工具&#xff0c;可以用来调试指定进程&#xff0c;并且可以在指定进程里分配RWX属性内存并写入shellcod…

临近年底,如何提高软件项目开发效率和开发速度?

1、任务自动分配功能 提高开发效率 为了提高团队的整个任务分配效率&#xff0c;CoCode自主研发任务“自动规划”功能&#xff0c;会根据当前任务属性以及人员技能登记等信息&#xff0c;实现迭代计划的一键规划&#xff0c;为项目经理智能规划出最优的项目计划以及人员工作安排…

ROS1学习笔记:服务数据的定义与使用(ubuntu20.04)

参考B站古月居ROS入门21讲&#xff1a;服务数据的定义与使用 基于VMware Ubuntu 20.04 Noetic版本的环境 文章目录一、模型图二、创建功能包三、自定义服务数据3.1 在package.xml中添加功能包依赖3.2 在CmakeLists.txt中添加编译选项3.3 编译生成的C文件和Python库四、代码实现…