欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate 实体映射

程序员文章站 2022-06-02 16:21:33
...

Hibernate  实体映射

1.1.  数据 库 与 数据表 表
数据库 stucourse
数据表 userinfo

                                         表 1 管理员信息表 userinfo

Hibernate 实体映射

1.2 新建项目

 

1.3 新建数据库连接

上篇文章已讲到

 

1.4.  为项目添加 Hibernate支持

项目上右击->MyEclipse->Add Hibernate Capabilities…

Hibernate 实体映射

在选择 hibernate 版本界面,按如下的图片内容进行选择:

Hibernate 实体映射

生成新的配置文件:

Hibernate 实体映射

选择数据库连接界面,选择 democnn,并修改数据为 stucourse

Hibernate 实体映射

在添加 SessionFactory 界面中使用“New…”按钮新建一个包 org.sf.util:

 

点击“Finish”完成 Hibernate 应用能力的添加

1.5.  使用 XML  方式生成 userinfo  表的映射文件

为了后面操作的方便,在 src 包中新建一个包:org.sf.entity,用于存放表的
映入文件以及实体类(持久化类) ;
在 DB Brower 窗口中,对 userinfo 表进行反向工程,生成实体类 Userinfo 和
映射文件 Userinfo.hbm.xml,过程如下(userinfo 表右击Hibernate Reverse
Engineering…) :

 

 

 

 

Hibernate 实体映射

Hibernate 实体映射

 

选择主键生成界面

Hibernate 实体映射

选择 native,由数据库管理。因为这个表和其它的表没有关系,因此不用生
成关联映射,在这个界面中直接点击“Finish”按钮,结束表的映射。
此时会弹出一个警告界面,说所使用的 democnn 连接是到 demo 数据库的,
而这个工程是连接到 stucourse 数据库的,不用管它,点击“OK”按钮即可

 

Hibernate 实体映射

1..6.  查看并修改生成的映射文件
检查生成的映射文件 Userinfo.hbm.xml,去掉 catalog="stucouse"参数,最终
的 Userinfo.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="org.sf.entity.Userinfo" table="userinfo">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="uname" type="java.lang.String">
<column name="uname" length="20">
<comment> 用户名</comment>
</column>
</property>
<property name="upass" type="java.lang.String">
<column name="upass" length="20">
<comment> 用户密码</comment>
</column>
</property>
</class>
</hibernate-mapping>

1.7.  添加测试文件测试用户表的功能

在 src 中添加 org.sf.test,在 org.sf.test 中添加 TestUserinfoHibernate 类,检查
用户数据操作信息是否成功,界面如下:

 

Hibernate 实体映射
TestUserinfoHibernate 的 main 方法的内容如下

<span style="font-size:14px;">public static void main(String[] args) {
//Configuration cfg= new Configuration();
//cfg.configure();
Session session = HibernateSessionFactory.getSession();
Transaction tran = session.beginTransaction();
Userinfo user = new Userinfo("zs", "zs");
session.save(user);
tran.commit();
session.close();
System.out.println(" 成功的添加了一个用户");
}</span>

 使用@ 注解 方式 制作 选课 系统 管理 员 用户 实体 映射 并 做 测试

使用@注解方式生成实体映射并的测试的过程如*****解方式生成持久化类
在 org.sf.entity 中添加 UserinfoJPA 类,使用注解的方式生成持久化类,文件内容如下:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="userinfo")
public class UserinfoJPA {
@Id // 指定该列为主键。主键类型最好不要使用int 等原始类型
// 主键类型AUTO 为数据库自动增长类型
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id; // 主键
@Column(name = "uname")
private String uname; // 用户名
@Column(name="upass")
private String upass; // 密码
public UserinfoJPA() {
}
public UserinfoJPA(String uname, String upass) {
this.uname = uname;
this.upass = upass;
}
…//setter 和getter 方法
}

2. @ 注解方式的测试类

在 org.sf.test 包中添加 TestUserinfoHibJPA 测试类,该的 main 方法的内容如
下:

public static void main(String[] args) {
Configuration cfg = new AnnotationConfiguration(); // 注意这里的区别
cfg.configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
UserinfoJPA user = new UserinfoJPA("ls", "ls");
session.save(user);
tran.commit();
session.close();
System.out.println(" 成功的添加了一条用户信息。");
}