在HIbernate中,实体类如何映射到数据库

如题所述

是通过映射文件来映射的。举个简单的例子,例如我有个Teacher实体类(某教学管理系统老师用户):
private Integer id; //编号
private String name; //姓名
private String password; //密码
private Date createDate; //创建日期
同时,我创建了数据表TEACHER:
create table teacher( id number(9) primary key, --编号 name varchar2(20), --姓名 password varchar2(20), --密码 create_date date --创建日期 );
这时,怎么关联它们呢?通过加载hibernate框架,我们就可以使用映射文件来关联实体类和数据库了
文件名:Teacher.hbm.xml(必须与实体类名字一致)
内容:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Mapping file autogenerated by MyEclipse Persistence Tools-->
<hibernate-mapping>
<class name="com.yss.Teacher" table="TEACHER" schema="WZM">
<id name="id" type="java.lang.Integer">
<column name="ID" precision="9" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="20" />
</property>
<property name="createDate" type="java.util.Date">
<column name="CREATE_DATE" length="7" />
</property>
</class>
</hibernate-mapping>
当然,这只是比较简单的映射,还有什么多对多,一对多等映射,并且映射时如何设置以达到需要的效果,这些你可以在网上搜索相关资料自行查看。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-20
在HIbernate中,实体类映射到数据库的配制方法:
1、Hibernate的核心配置文件:hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"">

<hibernate-configuration>
<session-factory >
<!-- 连接数据库信息 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
</session-factory>
</hibernate-configuration>
2、创建实体类:
package com.bjpowernode.hibernate;

import java.util.Date;

public class User {
private String id;
private String name;
private String password;
private Date createTime;
private Date expireTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}

}
3、建立 User.hbm.xml,完成实体类的映射
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"">
<hibernate-mapping>
<class name="com.bjpowernode.hibernate.User"> <!-- 实体类完整路径,会在关系模型中创建一张表,
叫User,也可以用table重命名,如 table="t_user" -->
<id name="id"><!--标识主键,会在表里建主键id,也可以重命名 column="user_id" -->
<generator class="uuid"/><!--主键生成策略,generator为生成器,uuid为生成
不重复的32位字符串 -->
</id>
<property name="name"/><!--其它属性,对应字段 -->
<property name="password"/>
<property name="createTime"/>
<property name="expireTime"/>
</class>

</hibernate-mapping>
4、将User.hbm.xml添加到核心配置文件hibernate.cfg.xml中。
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"">

<hibernate-configuration>
<session-factory >
<!-- 连接数据库信息 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
通过以上步骤,Hibernate将会在数据库中建立相应的表和字段。
第2个回答  2013-08-01
首先配置好数据源啊,然后有个反向工程生成就可以自动生成映射文件和实体类了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网