一.注解
/**
* javaBean
*
* 定义JavaBean中成员变量时所使用的类型:
* 因为每个基本类型都有一个默认值:
* int ==> 0
* boolean ==> false
* MybatisPlus会默认使用实体类的类名到数据中找对应的表
*
*/
//指定与实体类相对应的数据库中的表名
@TableName(value="tbl_employee")
public class Employee {
@TableId(value="id" , type =IdType.AUTO)
private Integer id ; // int
@TableField(value = "last_name")
private String lastName;
private String email ;
private Integer gender;
private Integer age ;
//数据库表中不存在,只在实体类中定义的字段
@TableField(exist=false)
private Double salary ;
}
@TableId:
* value: 指定表中的主键列的列名, 如果实体属性名与列名一致,可以省略不指定.
* type: 指定主键策略.
@TableField:
* value:指定数据库表中对应的列名
* fill = FieldFill.INSERT_UPDATE:字段填充,设置在插入和修改时将该字段更改
*
@Version:版本控制---乐观锁()
*
@TableLogic:逻辑删除,表明该字段是表示该条记录是否删除
*
二. AR模式
1.实体类继承Model类,modellei里定义了对数据库的操作方法
/**
* Model 类表示继承了AR模式
*/
public class TblEmployee extends Model<TblEmployee> {
private static final long serialVersionUID = 1L;
private Integer id;
private String lastName;
private String email;
private String gender;
private Integer age;
/**
* AR模式
* 重写该方法
* 返回主键
* @return
*/
@Override
protected Serializable pkVal(){
return this.id;
}
}
2.测试
/**
* AR测试
* 利用AR模式 实体对象继承model类之后可以直接进行插入操作
*/
public void testAR(){
TblEmployee em = new TblEmployee();
TblEmployee em1 = new TblEmployee();
em.setAge(20);
em.setEmail("8676778@qq.com");
em.setGender("f");
em.setLastName("xie");
em.insert();
/**
* SQL语句:UPDATE tbl_employee SET age=54 WHERE id=6
* 如果不加上 em1.setId(6)
* 报错---不知道对哪条数据进行update操作
*/
em1.setId(6);
em1.setAge(54);
em1.updateById();
/**
* delete 操作虽然操作条数为0,但是返回结果是true
*/
}