MybatisPlus - [02] HelloWorld

HOUHUILIN / 2024-06-07 / 原文

 

一、准备工作

(1)创建数据库:

create database if not exists mybatis_plus;

(2)创建user表:

drop table if exists user;
create table user(
    id bigint(20) not null comment '主键ID',
    name varchar(30) null default null comment '姓名',
    age int(11) null default null comment '年龄',
    email varchar(50) null default null comment '邮箱',
    primary key (id)
);

创建一张表必须拥有的字段:

① version(乐观锁)

② deleted(逻辑删除标志)

③ gmt_create(创建时间)

④ gmt_modified(修改时间)

(3)插入数据

insert into user (id,name,age,email) values
(1,'宇智波鼬',24,'you.yuzhibo@xiao.com'),
(2,'飞段',27,'duan.fei@xiao.com'),
(3,'角都',32,'du.jiao@xiao.com'),
(4,'迪达拉',23,'dala.di@xiao.com'),
(5,'蝎',18,'xie@xiao.com'),
(6,'干沛鬼鲛',28,'guijiao.ganpei@xiao.com'),
(7,'佩恩天道',26,'tiandao.pain@xiao.com'),
(8,'佩恩畜生道',26,'chushengdao.pain@xiao.com'),
(9,'佩恩修罗道',26,'xiuluodao.pain@xiao.com'),
(10,'佩恩恶鬼道',26,'eguidao.pain@xiao.com'),
(11,'佩恩人间道',26,'renjiandao.pain@xiao.com'),
(12,'佩恩地狱道',26,'diyudao.pain@xiao.com'),
(13,'小南',26,'nan.xiao@xiao.com'),
(14,'漩涡长门',28,'changmen.xuanwo@xiao.com');

 

二、测试

(1)创建一个SpringBoot项目:mybatis-plus

(2)Maven依赖配置

<!-- 数据库驱动 -->
<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-boot-starter</artifactId>
    <version>3.5.4</version>
</dependency>

(3)application.properties配置

spring.application.name=mybatis-plus

# 数据库连接配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=true&userUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=!QAZ2wsx

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

(4)POJO类

package com.harley.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author harley
 * @date 2024/06/06 17:30
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

(5)Mapper类

package com.harley.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.harley.pojo.User;
import org.springframework.stereotype.Repository;

/**
 * @author harley
 * @since 2024-06-06 21:46:57
 */
@Repository
public interface UserMapper extends BaseMapper<User> {

}

(6)主类配置MapperScan包扫描

package com.harley;

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

@MapperScan("com.harley.mapper")
@SpringBootApplication
public class MybatisPlusApplication {

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

}

(7)测试类

package com.harley;

import com.harley.mapper.UserMapper;
import com.harley.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;

@SpringBootTest
class MybatisPlusApplicationTests {

	@Autowired
	private UserMapper userMapper;

	@Test
	void contextLoads() {
		List<User> users = userMapper.selectList(null);
		users.forEach(System.out::println);
	}

}

(8)控制台打印结果

(9)application.properties中配置日志之后,控制台会打印如下内容

 

 

三、CURD(Create Update Read Delete)

(1)insert

@Test
void testInsert(){
    User user = new User(16L,"黑绝",200,"jue.hei@xiao.com");
    int res = userMapper.insert(user);
    if(res > 0){
        System.out.println("数据插入成功");
    }
}

(2)insert(不设置主键)

@Test
void testInsert(){
    User user = new User();
    user.setName("白绝");
    user.setAge(119);
    user.setEmail("jue.bai@xiao.com");
    int res = userMapper.insert(user);
    if(res > 0){
        System.out.println("数据插入成功");
    }
}

如图1798726048819458049为雪花算法生成的long型ID

 

3)update

@Test
void testUpdate(){
    User user = new User(16L,"绝",199,"jue@xiao.com");
    int res = userMapper.updateById(user);
    if(res > 0){
        System.out.println("数据更新成功");
    }
}

(3)select

 

(4)delete

@Test
void testDelete(){
    User user = new User();
    user.setId(16L);
    int res = userMapper.deleteById(user);
    if(res > 0){
        System.out.println("数据删除成功");
    }
}

 

 

四、idea界面

 

 

 

 

 

— 业精于勤荒于嬉,行成于思毁于随 —