1. 常用注解
@Table 注解
作用:建立实体类和数据库表之间的对应关系。
默认规则:实体类类名首字母小写作为表名。Employee 类→employee 表。
用法:在@Table 注解的 name 属性中指定目标数据库表的表名
@Table(name = "table_emp")
public class Employee {}
@Column 注解
作用:建立实体类字段和数据库表字段之间的对应关系。
默认规则:
1) 实体类字段:驼峰式命名
2) 数据库表字段:使用“_”区分各个单词
用法:在@Column 注解的 name 属性中指定目标字段的字段名
@Column(name = "salary")
private Double empSalary;
@Id 注解
通用 Mapper 在执行 xxxByPrimaryKey(key)方法时,有两种情况。
1) 情况 1:没有使用@Id 注解明确指定主键字段
2) 情况 2:使用@Id 主键明确标记和数据库表中主键字段对应的实体类字段。
@Id
private Integer empId;
@GeneratedValue 注解
作用:让通用 Mapper 在执行 insert 操作之后将数据库自动生成的主键值回写到实体类对象中。
自增主键用法:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer empId;
@Transient 主键
用于标记不与数据库表字段对应的实体类字段。
@Transient
private String otherThings; //非数据库表中字段
2. 常用方法
selectOne() 方法
-
实体类封装查询条件生成 WHERE 子句的规则
1) 使用非空的值生成 WHERE 子句
2) 在条件表达式中使用“=”进行比较 -
要求必须返回一个实体类结果,如果有多个,则会抛出异常
xxxByPrimaryKey 方法
需要使用 @Id 主键明确标记和数据库表主键字段对应的实体类字段,否则通用
Mapper 会将所有实体类字段作为联合主键。
xxxSelective 方法
非主键字段如果为 null 值,则不加入到 SQL 语句中。