Hibernate 注解相关说明
在前面的几篇文章中,我们都是采用xml文件将 持久化类同数据库之间进行数据转换,
那么有没有一种方法,无需使用xml文件,即可将持久化类映射至数据库中呢?下文将讲述Hibernate注解的方式为对象同关系映射表之间建立映射的房啊,如下所示:
注意事项:
Hibernate注解需在JDK5.0 及以上及安装 Hibernate 3.x 注解包,并复制 hibernate-annotations.jar, lib/hibernate-comons-annotations.jar 和 lib/ejb3-persistence.jar 到你的 CLASSPATH
如下例所示:
创建数据表
@Entity 注释
EJB3标准的注释包含在 javax.persistence 包,所以我们第一步需要导入这个包。第二步我们对 User 类使用 @Entity 注释,标志着这个类为一个实体 bean,
即它必须含有一个没有参数的构造函数并且在可保护范围是可见的。
@Table 注释
@table 注释允许您明确表的详细信息保证实体在数据库中持续存在。
@table 注释提供了四个属性,允许您覆盖的表的名称,目录及其模式,在表中可以对列制定独特的约束。现在我们使用的是表名为 EMPLOYEE。
@Id 和 @GeneratedValue 注释
每一个实体 bean 都有一个主键,你在类中可以用 @Id 来进行注释。
主键可以是一个字段或者是多个字段的组合,这取决于你的表的结构。
默认情况下,@Id 注释将自动确定最合适的主键生成策略,但是你可以通过使用 @GeneratedValue 注释来覆盖掉它
strategy 和 generator 这两个参数我不打算在这里讨论,所以我们只使用默认键生成策略
让Hibernate 确定使用哪些生成器类型来使代码移植于不同的数据库之间
@Column Annotation
@Column 注释用于指定某一列与某一个字段或是属性映射的细节信息。您可以使用下列注释的最常用的属性:
name 属性允许显式地指定列的名称。
length 属性为用于映射一个值,特别为一个字符串值的列的大小。
nullable 属性允许当生成模式时,一个列可以被标记为非空。
unique 属性允许列中只能含有唯一的内容
那么有没有一种方法,无需使用xml文件,即可将持久化类映射至数据库中呢?下文将讲述Hibernate注解的方式为对象同关系映射表之间建立映射的房啊,如下所示:
注意事项:
Hibernate注解需在JDK5.0 及以上及安装 Hibernate 3.x 注解包,并复制 hibernate-annotations.jar, lib/hibernate-comons-annotations.jar 和 lib/ejb3-persistence.jar 到你的 CLASSPATH
如下例所示:
创建数据表
create table User ( id INT NOT NULL auto_increment, name nVARCHAR(20) default NULL, salary INT default NULL, PRIMARY KEY (id) );建立一个持久化类
import javax.persistence.*;
@Entity
@Table(name = "TbUser")
public class User {
@Id @GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "name")
private String name;
@Column(name = "salary")
private int salary;
public User() {}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
} 注解相关说明: @Entity 注释
EJB3标准的注释包含在 javax.persistence 包,所以我们第一步需要导入这个包。第二步我们对 User 类使用 @Entity 注释,标志着这个类为一个实体 bean,
即它必须含有一个没有参数的构造函数并且在可保护范围是可见的。
@Table 注释
@table 注释允许您明确表的详细信息保证实体在数据库中持续存在。
@table 注释提供了四个属性,允许您覆盖的表的名称,目录及其模式,在表中可以对列制定独特的约束。现在我们使用的是表名为 EMPLOYEE。
@Id 和 @GeneratedValue 注释
每一个实体 bean 都有一个主键,你在类中可以用 @Id 来进行注释。
主键可以是一个字段或者是多个字段的组合,这取决于你的表的结构。
默认情况下,@Id 注释将自动确定最合适的主键生成策略,但是你可以通过使用 @GeneratedValue 注释来覆盖掉它
strategy 和 generator 这两个参数我不打算在这里讨论,所以我们只使用默认键生成策略
让Hibernate 确定使用哪些生成器类型来使代码移植于不同的数据库之间
@Column Annotation
@Column 注释用于指定某一列与某一个字段或是属性映射的细节信息。您可以使用下列注释的最常用的属性:
name 属性允许显式地指定列的名称。
length 属性为用于映射一个值,特别为一个字符串值的列的大小。
nullable 属性允许当生成模式时,一个列可以被标记为非空。
unique 属性允许列中只能含有唯一的内容
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


