hibernate映射简单实例
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映射简单实例相关推荐
- Hibernate一个简单实例的各种坑
开启mysql服务: net start mysql; 修改时区: show variables like %time_zone%; set global time_zone='+8:00';
- Hibernate搭建开发环境+简单实例(二)
2019独角兽企业重金招聘Python工程师标准>>> Hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hiber ...
- Hibernate注解(二)之映射简单的属性
翻译自Hibernate Annotations 2. 映射简单的属性 2.1.声明基本的属性映射 每个非静态非瞬态属性(取决于访问类型的字段或方法)都被认为是持久性的,除非您将其注释为@Trans ...
- 【SSH系列】Hibernate映射 -- 一对多关联映射
映射原理 一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入 ...
- 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)
[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...
- hibernate 映射_Hibernate映射集合性能问题
hibernate 映射 首先,本文的灵感来自于Burt Beckwith在2011年1月27日于SpringOne 2GX上发表的有关高级GORM –性能,自定义和监视的演讲 . 简而言之, Bur ...
- Hibernate映射集合性能问题
首先,这篇文章的灵感来自于Burt Beckwith在2011年1月27日于SpringOne 2GX上发表的有关高级GORM –性能,定制和监控的演讲 . 简而言之, Burt Beckwith讨论 ...
- ssh架构之hibernate(一)简单使用hibernate完成CRUD
1.Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,h ...
- 实践hibernate的应用——struts2+hibernate的简单学生信息管理
struts2+hibernate的简单学生信息管理,没有用很好的界面,目的主要是为了实践一下hibernate框架的学习,深入了解hibernate框架. 下面是项目的目录: 配置文件hiberna ...
最新文章
- 如何判断 cxgrid 双击了哪一列_唐卡的价值主要体现在哪 如何判断唐卡的价值
- linux下启动tlq命令,UNIX/LINUX命令
- 8、显示程序占用内存多少.txt
- Layui 数据表格, 取消全选
- GitBook使用教程
- .NET特性(Attribute)应用一例
- 逆向入门--何为OEP
- Unity 游戏框架搭建 (九) 减少加班利器-QConsole
- T-SQL:毕业生出门需知系列(七)
- java项目整合mybatis_JavaWeb项目整合Spring,SpringMVC,Mybatis框架
- bzoj1612 奶牛的比赛
- 在iPhone任何界面截图完整图文教程
- 电信光纤天翼网关将默认的路由模式修改为桥接模式
- C语言关于素数个数的求法
- 数据科学数据分析_使用数据科学进行营销分析
- HCIA网络基础9-VRP文件系统管理
- 互联网巨头员工的跳槽去向与薪资涨幅
- MSP430-流水灯和key
- LiveMedia视频平台与第三方国标平台级联对接异常断流
- 揽月摘星 | 第 13 届金鼠标数字营销大赛得奖名单出炉,知家斩获 5 项大奖
热门文章
- 80386的各种寄存器一览
- NoSQL(一):NoSQL数据库、redis
- VirtualBox 图形化界面
- 新来的“大神”用策略模式把if else给“优化”了,技术总监说:能不能想好了再改?
- Java中的门面设计模式,非常有用!
- 今日头条在消息服务平台和容灾体系建设方面的实践与思考
- JavaScript会是Web开发的未来吗?
- Fluentd初探 简介与安装
- 框架:mybatis常用标签(refid、foreach、trim)
- 框架:spring、springmvc、springboot