1创建数据库:

 1 --班级表
 2 create table grade
 3 (
 4        gid       number           primary key,  --班级ID
 5        gname     varchar2(50),                  --班级名称
 6        gdesc     varchar2(50)                   --班级介绍
 7 );
 8 --学生表
 9 create table student
10 (
11        sid       number           primary key,  --主键ID学生ID
12        sname     varchar2(20),            --学生姓名
13        sex       varchar2(20),            --学生性别
14        gid       number           references grade(gid) ---外键班级ID
15 );
16
17 --学生证表
18 create table paper
19 (
20        pid   number primary key,
21        pdesc varchar2(100)  ,
22        sid   number references student(sid) not null
23
24 );

二、创建配置文件和持久化类:

学生类

package entity;/** 学生类*/
public class Student implements java.io.Serializable {// Fieldsprivate static final long serialVersionUID = 1L;private int sid;private String sname;private String sex;//增加班级属性private Grade grade;//学生证类private Paper paper;// Constructors/** default constructor */public Student() {}/** minimal constructor */public Student(int sid) {this.sid = sid;}/** full constructor */public Student(int sid, String sname, String sex ) {this.sid = sid;this.sname = sname;this.sex = sex;}// Property accessorspublic int getSid() {return this.sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return this.sname;}public void setSname(String sname) {this.sname = sname;}public String getSex() {return this.sex;}public void setSex(String sex) {this.sex = sex;}public Grade getGrade() {return grade;}public void setGrade(Grade grade) {this.grade = grade;}public Paper getPaper() {return paper;}public void setPaper(Paper paper) {this.paper = paper;}}

View Code

学生证类

 1 package entity;
 2
 3 /*
 4  * 学生证类
 5  */
 6
 7 public class Paper implements java.io.Serializable {
 8
 9     // Fields
10
11     private static final long serialVersionUID = 1L;
12     private int pid;
13     private Student student;
14     private String pdesc;
15
16     // Constructors
17
18     /** default constructor */
19     public Paper() {
20     }
21
22     /** minimal constructor */
23     public Paper(int pid) {
24         this.pid = pid;
25     }
26
27     /** full constructor */
28     public Paper(int pid, Student student, String pdesc) {
29         this.pid = pid;
30         this.student = student;
31         this.pdesc = pdesc;
32     }
33
34     // Property accessors
35
36     public int getPid() {
37         return this.pid;
38     }
39
40     public void setPid(int pid) {
41         this.pid = pid;
42     }
43
44     public Student getStudent() {
45         return this.student;
46     }
47
48     public void setStudent(Student student) {
49         this.student = student;
50     }
51
52     public String getPdesc() {
53         return this.pdesc;
54     }
55
56     public void setPdesc(String pdesc) {
57         this.pdesc = pdesc;
58     }
59
60 }

View Code

hibernate.cfg.xml配置文件

 1 <?xml version='1.0' encoding='UTF-8'?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5
 6 <hibernate-configuration>
 7
 8     <session-factory>
 9         <property name="dialect">
10             org.hibernate.dialect.Oracle9Dialect
11         </property>
12         <property name="connection.url">
13             jdbc:oracle:thin:@localhost:1521:orcl
14         </property>
15         <property name="connection.username">root</property>
16         <property name="connection.password">root</property>
17         <property name="connection.driver_class">
18             oracle.jdbc.OracleDriver
19         </property>
20         <property name="show_sql">true</property>
21         <property name="format_sql">true</property>
22
23         <mapping resource="entity/Grade.hbm.xml" />
24         <mapping resource="entity/Student.hbm.xml" />
25         <mapping resource="entity/Paper.hbm.xml" />
26
27     </session-factory>
28
29 </hibernate-configuration>

Student类配置文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4
 5 <hibernate-mapping>
 6     <class name="entity.Student" table="STUDENT" schema="ROOT">
 7         <id name="sid" type="java.lang.Integer">
 8             <column name="SID" precision="22" scale="0" />
 9             <generator class="assigned" />
10         </id>
11         <property name="sname" type="java.lang.String">
12             <column name="SNAME" length="20" />
13         </property>
14         <property name="sex" type="java.lang.String">
15             <column name="SEX" length="20" />
16         </property>
17         <!--配置grade属性  -->
18         <many-to-one name="grade" class="entity.Grade" cascade="save-update">
19         <!--指定学生表中的外键  -->
20         <column name="GID" />
21         </many-to-one>
22         <!-- 添加学生证的配置 -->
23         <one-to-one name="paper" class="entity.Paper" cascade="all" lazy="false"/>
24     </class>
25 </hibernate-mapping>

Paper类配置文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4
 5 <hibernate-mapping>
 6     <class name="entity.Student" table="STUDENT" schema="ROOT">
 7         <id name="sid" type="java.lang.Integer">
 8             <column name="SID" precision="22" scale="0" />
 9             <generator class="assigned" />
10         </id>
11         <property name="sname" type="java.lang.String">
12             <column name="SNAME" length="20" />
13         </property>
14         <property name="sex" type="java.lang.String">
15             <column name="SEX" length="20" />
16         </property>
17
18         <!-- 添加学生证的配置 -->
19         <one-to-one name="paper" class="entity.Paper" cascade="all" lazy="false" property-ref="student"/>
20     </class>
21 </hibernate-mapping>

测试类

 1 package Test;
 2
 3 import org.hibernate.Session;
 4 import org.hibernate.Transaction;
 5 import org.hibernate.cfg.Configuration;
 6
 7 import entity.Paper;
 8 import entity.Student;
 9
10 public class Demo6 {
11
12     public static void main(String[] args) {
13         findByStu();
14     }
15
16     public static void save() {
17
18         Student stu1 = new Student();
19         stu1.setSid(20151109);
20         stu1.setSname("王霸");
21         stu1.setSex("女");
22
23         Paper paper=new Paper();
24         paper.setPid(9001);
25         paper.setPdesc("王霸的学生证");
26         paper.setStudent(stu1);
27
28
29         stu1.setPaper(paper);
30
31         // 建立session
32                 Session session = new Configuration().configure().buildSessionFactory()
33                         .openSession();
34                 // 开始事务
35                 Transaction transaction = session.beginTransaction();
36
37
38                 // 保存学生证
39                 session.save(stu1);
40                 // 提交事务
41                 transaction.commit();
42                 // 关闭session
43                 session.close();
44
45     }
46
47     public static void find() {
48         // 建立session
49         Session session = new Configuration().configure().buildSessionFactory()
50                 .openSession();
51         Paper paper=(Paper) session.get(Paper.class, 9001);
52         System.out.println(paper.getPid()+paper.getPdesc());
53         Student stu1=paper.getStudent();
54         System.out.println(stu1.getSid()+"\t"+stu1.getSname());
55     }
56     public static void findByStu() {
57         // 建立session
58         Session session = new Configuration().configure().buildSessionFactory()
59                 .openSession();
60         Student stu=(Student) session.get(Student.class, 20151109);
61         System.out.println(stu.getSname());
62         Paper paper=stu.getPaper();
63         System.out.println(paper.getPid()+"\t"+paper.getPdesc());
64     }
65
66 }

转载于:https://www.cnblogs.com/smellpawn/p/10805392.html

hibernate映射简单实例相关推荐

  1. Hibernate一个简单实例的各种坑

    开启mysql服务: net start mysql; 修改时区: show variables like %time_zone%; set global time_zone='+8:00';

  2. Hibernate搭建开发环境+简单实例(二)

    2019独角兽企业重金招聘Python工程师标准>>> Hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hiber ...

  3. Hibernate注解(二)之映射简单的属性

    翻译自Hibernate Annotations 2.  映射简单的属性 2.1.声明基本的属性映射 每个非静态非瞬态属性(取决于访问类型的字段或方法)都被认为是持久性的,除非您将其注释为@Trans ...

  4. 【SSH系列】Hibernate映射 -- 一对多关联映射

         映射原理        一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入 ...

  5. 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

    [SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...

  6. hibernate 映射_Hibernate映射集合性能问题

    hibernate 映射 首先,本文的灵感来自于Burt Beckwith在2011年1月27日于SpringOne 2GX上发表的有关高级GORM –性能,自定义和监视的演讲 . 简而言之, Bur ...

  7. Hibernate映射集合性能问题

    首先,这篇文章的灵感来自于Burt Beckwith在2011年1月27日于SpringOne 2GX上发表的有关高级GORM –性能,定制和监控的演讲 . 简而言之, Burt Beckwith讨论 ...

  8. ssh架构之hibernate(一)简单使用hibernate完成CRUD

    1.Hibernate简介   Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,h ...

  9. 实践hibernate的应用——struts2+hibernate的简单学生信息管理

    struts2+hibernate的简单学生信息管理,没有用很好的界面,目的主要是为了实践一下hibernate框架的学习,深入了解hibernate框架. 下面是项目的目录: 配置文件hiberna ...

最新文章

  1. 如何判断 cxgrid 双击了哪一列_唐卡的价值主要体现在哪 如何判断唐卡的价值
  2. linux下启动tlq命令,UNIX/LINUX命令
  3. 8、显示程序占用内存多少.txt
  4. Layui 数据表格, 取消全选
  5. GitBook使用教程
  6. .NET特性(Attribute)应用一例
  7. 逆向入门--何为OEP
  8. Unity 游戏框架搭建 (九) 减少加班利器-QConsole
  9. T-SQL:毕业生出门需知系列(七)
  10. java项目整合mybatis_JavaWeb项目整合Spring,SpringMVC,Mybatis框架
  11. bzoj1612 奶牛的比赛
  12. 在iPhone任何界面截图完整图文教程
  13. 电信光纤天翼网关将默认的路由模式修改为桥接模式
  14. C语言关于素数个数的求法
  15. 数据科学数据分析_使用数据科学进行营销分析
  16. HCIA网络基础9-VRP文件系统管理
  17. 互联网巨头员工的跳槽去向与薪资涨幅
  18. MSP430-流水灯和key
  19. LiveMedia视频平台与第三方国标平台级联对接异常断流
  20. 揽月摘星 | 第 13 届金鼠标数字营销大赛得奖名单出炉,知家斩获 5 项大奖

热门文章

  1. 80386的各种寄存器一览
  2. NoSQL(一):NoSQL数据库、redis
  3. VirtualBox 图形化界面
  4. 新来的“大神”用策略模式把if else给“优化”了,技术总监说:能不能想好了再改?
  5. Java中的门面设计模式,非常有用!
  6. 今日头条在消息服务平台和容灾体系建设方面的实践与思考
  7. JavaScript会是Web开发的未来吗?
  8. Fluentd初探 简介与安装
  9. 框架:mybatis常用标签(refid、foreach、trim)
  10. 框架:spring、springmvc、springboot