首页 > 其他分享 >Mybatis Plus快速入门(一)

Mybatis Plus快速入门(一)

时间:2024-04-29 17:34:35浏览次数:29  
标签:jackson 入门 mapstruct boot version Plus Mybatis org com

1. 环境准备

MySQL环境配置:5.7,可以参考我之前的文章使用docker或者直接安装在服务器上面。新建一张表user,使用Mybatis Plus官网提供表结构和数据。

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`
(
    id BIGINT NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

DELETE FROM `user`;

INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');

2.简单介绍


MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

3.开发环境准备

我们使用Spring Boot来快速搭建本次开发环境,父级模块主要用来引入基础包,父级模块中新建Mybtais plus学习子模块,如下:

父级项目pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.wyz</groupId>
<artifactId>SpringStudy</artifactId>
<version>1.0</version>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <jackson.version>2.14.2</jackson.version>
    <mapstruct.version>1.5.5.Final</mapstruct.version>
    <lombok.version>1.18.30</lombok.version>
    <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
    <hutool.version>5.8.24</hutool.version>
    <swagger.version>2.9.2</swagger.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>${mapstruct.version}</version>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>${hutool.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger.version}</version>
    </dependency>
</dependencies>



<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
        <!-- Maven 编译插件,提供给 MapStruct 使用 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin.version}</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <annotationProcessorPaths>
                    <!-- MapStruct 注解处理器 -->
                    <path>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>${mapstruct.version}</version>
                    </path>
                    <!-- Lombok 注解处理器 -->
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>${lombok.version}</version>
                    </path>
                    <!-- MapStruct 和 Lombok 注解绑定处理器 -->
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok-mapstruct-binding</artifactId>
                        <version>${lombok-mapstruct-binding.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

中间引入了一些其它依赖,比如:序列化(jackson),工具包(hutool),MapStruct,Lombok,这些工具包在公司实际项目中也是比较常用。

MybatisPlusDemo模块中pom.xml文件如下:

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <mybatis-plus.version>3.5.5</mybatis-plus.version>
    <mysql.version>5.1.49</mysql.version>
    <druid.version>1.2.20</druid.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>${mybatis-plus.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>${druid.version}</version>
    </dependency>
</dependencies>

配置文件application.yml

server:
  port: 80
spring:
  application:
    name: MybatisPlusDemo
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/cloud_study?useSSL=false&serverTimezone=UTC&characterEncoding=utf8
      username: root
      password: 123456
      driver-class-name: com.mysql.jdbc.Driver

启动测试:

4.创建实体类和DAO层

@ToString
@Data
@TableName("user")
@ApiModel(value = "UserDO", description = "用户信息对象")
public class UserDO {
    @ApiModelProperty("ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("姓名")
    @TableField("name")
    private String name;

    @ApiModelProperty("年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty("邮箱地址")
    @TableField("email")
    private String email;
}

@Mapper
public interface UserMapper extends BaseMapper<UserDO> {
}


快速测试:

@SpringBootTest
public class MybatisPlusDemoTest {
    @Resource
    private UserMapper userMapper;

    @Test
    public void queryAllTest(){
        List<UserDO> userDOS = userMapper.selectList(null);
        System.out.println(userDOS);
    }
}

标签:jackson,入门,mapstruct,boot,version,Plus,Mybatis,org,com
From: https://www.cnblogs.com/wyzstudy/p/18166332

相关文章

  • 2-ICEM入门练习:梯形切分映射
    前言这一篇主要学习icem的分割以及映射功能。几何采用一个梯形,因为icem创建的block都是长方体,所以需要将block和几何进行一一对应才可以生成网格。因此通过梯形的网格划分来理解block及映射这部分知识。其余部分比如建模等,就不详细描述。具体步骤几何如图:创建block此时......
  • 1-ICEM入门练习:正方体网格划分(六面体网格)
    1.前言采用简单几何结构进行网格划分,主要目的是熟悉ICEM操作流程及网格划分思路,参考B站博主视频进行自己练习。基本操作:鼠标中键--平移、ctrl+鼠标左键--旋转、鼠标右键上下滑动--放大缩小2.几何结构采用spceclaim建模20mm×20mm×20mm正方体几何,无需定义边界,保存文件类型......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
    1.简介上一篇讲解和分享了录制自动生成脚本,索性连带录制视频也一股脑的在这里就讲解和分享了。今天我们将学习如何使用Playwright和Python来录制浏览器操作的视频,以便在需要时进行回放和分析。2.录制视频语法录制视频介绍官方API的文档地址:https://playwright.dev/python/docs/......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
    https://www.cnblogs.com/du-hong/p/17835463.html 1.简介各种自动化框架都会有脚本录制功能,playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具,发展到每种浏览器都有对应的录制插件。今天我们就来看下微软自动化框架playwright是如何录制脚本的。很多小伙伴或......
  • mybatis 常用标签
    xml模板<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="mapper接口全限定名">......
  • Python多线程编程深度探索:从入门到实战
    title:Python多线程编程深度探索:从入门到实战date:2024/4/2818:57:17updated:2024/4/2818:57:17categories:后端开发tags:多线程并发编程线程安全Python异步IO性能优化实战项目第1章:Python基础知识与多线程概念Python简介:Python是一种高级、通用、解释......
  • mybatis乐观锁批量更新和单个更新
    拦截器packagecom.esolution.xreport.config;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;importorg.springframework.context.annotation.......
  • 记录VS Github Copilot入门上手
    我拉取了一个简单的开源项目,在此基础上测试Copilot功能。功能点盘点:1.根据要求和上下文的代码生成你想要的方法 2.代码写的过程中自动提示和补全代码此功能非常强大,会不停的帮你补全,分析生成你可能写入的代码,它会结合你的项目中的代码帮你生成。基本上只用写好备注,等待生......
  • HydroOJ 从入门到入土(15)批量修改题目标签(tag)
    选择还是分支?这是一个problem。好消息:搞到了一批题目!坏消息:题目没有标签好消息:导入的题目有标签!坏消息:题目标签和自己的不一样好消息:标签全部手动改完了!坏消息:还是觉得第一版好一、需求虽然理论上应该是导入之前就把标签全部调整好再导入,但实际上,导入之前调整标签并......
  • Go-Zero微服务快速入门和最佳实践(一)
    前言并发编程和分布式微服务是我们Gopher升职加薪的关键。毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发。虽说好上手,但是想和别人拉开差距,提高自己的竞争力,搞懂分布式微服务和并发编程还是灰常重要的,这也是我今年更新文章的重点。......