mybatis-plus

2.MybatisPlus 基本使用

2020-03-22  本文已影响0人  神奇作手

1.使用mybatisPlus通用Mapper方法新增方法

1.1.在配置文件中增加日志输出
server:
  port: 8088

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/MP?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: 123456

logging:
  level:
    root: warn
    com.mp.dao: trace
  pattern:
    console: '%p%m%n'
1.2.在实体类上添加链式调用注解
package com.mp.entity;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * @Description 实体类
 * @Author LL
 * @Date 2020-03-22 12:22
 */
@Data
@Accessors(chain = true)//链式调用
public class User {
    private Long id;//主键
    private String name;//姓名
    private Integer age;//年龄
    private String email;//邮箱
    private Long managerId;//上级id
    private LocalDateTime createTime;//创建时间
}
1.3.测试类中添加测试方法
package com.mp;

import com.mp.dao.UserMapper;
import com.mp.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description 测试类
 * @Author LL
 * @Date 2020-03-22 12:35
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class SimpleTest {

    @Autowired
    private UserMapper userMapper;

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

    @Test
    public void insert(){
        User user = new User()
                .setName("张三")
                .setAge(31)
                .setManagerId(1088248166370832385L)
                .setEmail("zhangsan@baomidou.com")
                .setCreateTime(LocalDateTime.now());
        int res = userMapper.insert(user);
        System.out.println("影响记录数:"+res);
    }

}
1.4.测试

2.常用注解

1.在新增数据过程中主键id的值MybatisPlus会更具雪花算法自动添加;
2.表中的 manager_id、create_time字段,会根据驼峰命名识别为managerId、createTime;
3.数据表名称和实体类名称一致则会自动识别,如果不一致则在实体类上使用@TableName("表名称")注解;
4.如果主键id不为id字段则默认不识别,需添加@TableId注解指明;
5.如果表中的字段名称与实体类中的不对应,可以使用@TableField("表中字段名称")注解指定对应关系;

package com.mp.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * @Description 实体类
 * @Author LL
 * @Date 2020-03-22 12:22
 */
@Data
@Accessors(chain = true)
@TableName("user")//指定表名称
public class User {

    @TableId//指明此字段为主键id
    private Long id;//主键

    @TableField("name")//指定字段名字与表中的对应关系
    private String realName;//姓名

    private Integer age;//年龄

    private String email;//邮箱

    private Long managerId;//上级id

    private LocalDateTime createTime;//创建时间

}

3.排除非表字段方式

不是表中的字段,而在实体类中有需要使用

1.在定义实体类字段时添加transient修饰,例如:

private transient String remark;//标识

注意:此方式在序列化下不能使用
2.在定义实体类字段时添加static修饰,例如:

private static String remark;//标识

3.使用@TableField(exist = false)表示不是数据库字段

package com.mp.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * @Description 实体类
 * @Author LL
 * @Date 2020-03-22 12:22
 */
@Data
@Accessors(chain = true)
@TableName("user")//指定表名称
public class User {

    @TableId//指明此字段为主键id
    private Long id;//主键

    @TableField("name")//指定字段名字与表中的对应关系
    private String realName;//姓名

    private Integer age;//年龄

    private String email;//邮箱

    private Long managerId;//上级id

    private LocalDateTime createTime;//创建时间

//    private transient String remark;//标识
//    private static String remark;//标识
    @TableField(exist = false)//表示不是数据库字段
    private String remark;//标识

}
上一篇 下一篇

猜你喜欢

热点阅读