Mybatis-plus01--快速开始

前言

在编写Java开发过程中,尤其是CRUD开发,我们会发现大部分事件都在编写Java持久层的增删改查上了,并且配置mybatis的mapper文件也是一件麻烦的事。如果你也有这样的烦劳,看来就可以认识一下我们的新朋友mybatis-plus了。

MyBatis-Plus 是一个 Mybatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特点:无侵入,只增强mybatis,不会破坏原来的已经由mybatis构建的项目;CRUD,内置CRUD方法,不再需要自己编写单表CRUD功能;Lambda表达式以及各种插件。

快速入门

实验环境需要在JetBrins Idea上完成,请事先下载好这款编辑器

1.构建一个spring Boot项目

打开idea,新建项目为SpringBoot

JDK最好使用17以上,默认打jar包就好,然后第二个勾选依赖,先只勾选一个spring Web就好,后面慢慢的导入也是一样的,由于springboot的自动装配,自己手写导入依赖很少

 2.引入相关的依赖

 由于测试的是数据库方面,那么映入的依赖肯定要包括数据库连接器,我使用的是mysql,故而需要导入mysql-connector-java

接着导入mybatis-plus,导入mybatis-plus需要注意不要同时导入mybatis的依赖,这会导致依赖冲突,一个mybatis-plus就可以解决了:mybatis-plus-spring-boot3-starter

然后导入一个方便写实体类的插件Lombok,也是老朋友了

全部的准备依赖如下:

复制代码
<!--        mysql驱动器-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
<!--        lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
<!--        mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.10.1</version>
        </dependency>
复制代码

 

3.写application.properties文件:连接配置

一般MySQL的使用版本一共有两个,一个是5版本开头的用户,这类用户配置需要配置登录用户名,密码,连接地址以及连接驱动,而8版本开头的用户则是需要多配置一个时区

5版本的连接驱动:com.mysql.jdbc.Driver ;8版本的驱动:com.mysql.cj.jdbc.Driver;由于8版本向下兼容,故而5版本的mysql也可以使用8版本的连接驱动

5版本的配置如下:

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus?useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

8版本的配置多了一个时区配置:

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

4.初始化数据库和一张数据库表用于测试mybatis-plus

创建数据库命令:

create database mybatis_plus;

 

使用此数据库,并且创建一张数据库表:

复制代码
use 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, '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');

 

查看数据库表中的内容,是否完成插入:

select * from user;

 

 5.编写实体类,用于映射数据库表的字段

User实体类:

复制代码
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain=true)
public class User {
    private  Integer id;
    private String name;
    private int age;
    private String email;
}
复制代码

 

6.编写Dao接口,或者持久层接口

由于是操作User的接口,故而推荐定义为UserDao,并且需要在此接口之下积乘BaseMapper父类,这个父类就是mybatis-plus写的,实现此父类后会有很多CRUD方法,直接调用就可以操作数据库了

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.cqust.testmybatisplus.pojo.User;

public interface UserDao extends BaseMapper<User> {
}

 

注意:当我们继承BaseMapper之后,并且传入一个操作的泛型,也就是要操作的实体类给它,我们就已经将此实体类对应的数据库表的CRUD方法写好了。

由于mybatis-plus可以自动取别名,传入User,那么它就会默认操作的表为user表

完成接口继承之后,需要在启动器中使用MapperScan扫描dao下面的包,用于注入到spring容器中,一定要定位到持久层的包也就是dao

复制代码
@MapperScan("org.cqust.testmybatisplus.dao")
@SpringBootApplication
public class TestMybatisPlusApplication {

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

}
复制代码

 

7.测试BaseMapper中的方法

简单测试一个查询全部信息的程序:

@Autowired
    private UserDao userDao;
    @Test
    public void testSelect(){
        List<User> users = userDao.selectList(null);
        users.forEach(System.out::println);
    }

selectList需要传入条件选择器,为null就是无条件查询,也就是全表查询:

 最后查询出的结果就是创建数据库表的那些数据:

 8.配置log日志,方便调试mybatis-plus

默认的控制台只会输出打印结果,我们并不知道,究竟执行了什么sql语句,这里推荐在application.properties文件中打开log日志功能,方便调试

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

 

再次运行测试程序:

 

posted @   回忆也交给时间  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2023-03-06 RestFul风格
2023-03-06 Controller配置方式及RequestMapping说明
点击右上角即可分享
微信分享提示