通用Mapper(四)常用注解

常用注解

  1. @Table

    作用:简历实体类和数据库表之间的对应关系。

    默认规则:实体类类名首字母小写作为表名,如Employee -> employee表

    用法:在 @Table 注解的 name 属性中指定目标数据库的表名;

    案例:

    

  2. @Column

    作用:建立实体类字段和数据库表字段之间的对应关系
    默认规则:实体类字段,驼峰式命名,数据库表字段,使用"_" 区分各个单词;
    用法:在 @Column 注解的 name 属性中指定目标字段的字段名
    案例:
    

  3. @Id

    通用Mapper在执行 xxxByPrimaryKey(key) 方法时,有两种情况:

    情况1:没有使用 @Id注解明确指定主键字段

SELECT emp_id,emp_name,emp_salary,emp_age FROM tabple_emp WHERE emp_id = ? AND emp_name = ? AND emp_salary = ? AND emp_age = ?

      之所以会生成上面的where子句是因为通用Mapper将实体类的所有字段都拿来放在一起作为联合主键。

    情况2:使用@Id 注解明确标记和数据库表中主键字段对应的实体类字段。

    如:

    

SELECT emp_id,emp_name,emp_salary,emp_age FROM tabple_emp WHERE emp_id = ? 

    注意:如果是多个字段作为联合主键,需要在每个字段上面都加上 @Id 注解。

  4. @GeneratedValue

    作用:让通用Mapper在执行 insert 操作之后将数据库自动生成的主键值回写到实体类对象中。

    自增主键用法(MySQL):

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer empId;

    序列主键用法(Oracle)

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator="select SEQ_ID.nextval from dual")
private Integer empId;

  5. @Transient

    一般实体类中字段和数据库表中字段一一对应的,但是也有很多情况会在实体类中增加一些额外的属性,这种情况,需要使用@Transient 注解告诉通用Mapper这不是表中的字段。

    对于类中复杂对象,以及Map、List 等属性不需要配置这个注解。

    配置实例:

@Transient
private String otherThings; //非数据库字段

  6.

原文地址:https://www.cnblogs.com/niujifei/p/15269600.html