美文网首页mybatis-plus
2.MybatisPlus 基本使用

2.MybatisPlus 基本使用

作者: 神奇作手 | 来源:发表于2020-03-22 14:39 被阅读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;//标识
    
    }
    

    相关文章

      网友评论

        本文标题:2.MybatisPlus 基本使用

        本文链接:https://www.haomeiwen.com/subject/iynmyhtx.html