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;//标识
}
网友评论