hibernate不用xml配置實體類,就可以映射到數據庫的問題

[size=large]各位大蝦們,小弟有禮了,我想請問一下,怎么只編寫一個java實體類,而不再配置實體類相應的xxx.hbm.xml就可以把這個實體類映射到數據庫的寫法,我自己在相關的書上也學了一點,可是解析的不是很清楚,都是一個就帶過了,我我求一個詳細點的,謝謝閣下們了[/size]

4个回答

在实体类上使用注解。

Hibernate原来只提供xml的配置方式,不过最近为了支持JPA( Java Persistence API),也支持用Annotations的方式来定义实体与数据库表的映射。要详细学习JPA,请参见《 Pro EJB3 --- Java Persistence API》

jar包的要求,除Hibernate的基本jar包外,额外增加:

hibernate-entitymanager.jar (需要下载hibernate-entitymanager-3.X.X.GA.zip)

给你一个简单的例子:

[code="java"]
package edu.xjtu.tts.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

@Entity
@NamedQueries( {
@NamedQuery(name = "getall",
query = "SELECT p FROM Person p"),
@NamedQuery(name = "findPersonByNickname",
query = "SELECT p FROM Person p WHERE p.nickname = :nickname"),
@NamedQuery(name="findPersonsByStatus",
query = "SELECT p FROM Person p WHERE p.status = :status")

})
public class Person {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

private String realname;

@Column(unique=true)
private String nickname = "xjtufans";

private String message = "别迷恋哥,哥只是个传说";

private String email;

private String password;

private Date signOn;

private boolean logOn = false;

@Enumerated(EnumType.STRING)
@Column(name = "status")
private StatusEnum status;

。。。。。。。 省略getter 和 setter 方法 。。。。。。

}

[/code]

上面配置的结果是:

Person表

列名 结构
ID 整型 (主键)
RealName 字符型
NickName 字符型 (唯一)
Password 字符型
Email 字符型
Message 字符型(默认值:别迷恋哥,哥只是个传说)
SignOn 时间型
IsLogOn 布尔型 (默认值为false)
Status 枚举型

楼上的说的已经非常明确了。简历楼主参考。
hibernate 的Annotation的方式。现在正被广泛运用

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐