@Entity: 表明该类为一个实体类

一般标注在类前.

参数:

name: 表示其所对应的数据库中的表名

@Table: 声明此对象映射到数据库的数据表,通过它可以为实体指定表

一般标注在类前.

参数:

1.name:  用来命名当前实体类对应的数据库表的名字.
2.catalog: 指定table数据库中的路径,这里指数据库名
3.uniqueConstraints: 可以创建单个字段或者联合的唯一约束,只有在创建表成功时才执行
4.indexes:索引,可以指定联合索引,也是只有表生成成功才有效

@Id:注释指定表的主键

一般标注在属性前.也可以标注在属性的getter方法前.

参数:

1.TABLE:容器指定用底层的数据表确保唯一;
2.SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
3.IDENTITY:使用数据库的IDENTITY列莱保证唯一;
4.AUTO:由容器挑选一个合适的方式来保证唯一;
5.NONE:容器不负责主键的生成,由程序来完成.

@Column: 用来标识实体类中属性与数据表中字段的对应关系

一般标注在属性前.也可以标注在属性的getter方法前.

参数:

1.name: 定义了被标注字段在数据库表中所对应字段的名称;
2.nullable: 表示该字段是否可以为null值,默认为true。
3.insertable: 表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。
4.updatable: 表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。
5.columnDefinition(大多数情况,几乎不用): 表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。(也就是说,如果DB中表已经建好,该属性没有必要使用。)
6.table: 表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。
7.length: 表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。
8.precision和scale: 当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@Entity 
@Table(name = "user") //这二个注解有可以写成 @Entity(name = "user"), 因为类名与表名一致(不区分大小写),也可以省略
public class User {
@Id
@Column(name = "id") //如果属性名与表中的列名一致可以不写此注解
int id;
private String username;
private String password;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

载入天数...载入时分秒... 本站使用 Volantis 作为主题 鲁ICP备-20012065号