zoukankan      html  css  js  c++  java
  • 通用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.

  • 相关阅读:
    创建github怎样管理
    端口号的作用
    正则
    分布式代码管理github
    实现MVC
    AngularJS核心特性(四大点)
    什么是跨域,什么是同源
    rem怎么计算
    正则须知(以后还会添加)
    LA 6448 Credit Card Payment
  • 原文地址:https://www.cnblogs.com/niujifei/p/15269600.html
Copyright © 2011-2022 走看看