`

六 员工与部门——》多对以关系

 
阅读更多
关联关系 
多对一关系 
员工与部门的关系 从员工角度 是多对一的关系  那么在员工的实体类中加上部门的属性即可 
package vo.util.bean;
/**
 * 员工类
 * @author Administrator
 *
 */
public class Employee {
    private int id;
    private String name;
    private Department derpartment;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Department getDerpartment() {
		return derpartment;
	}
	public void setDerpartment(Department derpartment) {
		this.derpartment = derpartment;
	}
}

映射文件 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="vo.util.bean">

	<class name="Employee">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<many-to-one name="derpartment" column="depaer_id"/>
	</class>
	
</hibernate-mapping>

部门类 
package vo.util.bean;
/**
 * 部门类
 * @author Administrator
 *
 */
public class Department {
  private int id;
  private String name;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
}

映射文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="vo.util.bean">

	<class name="Department">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
	</class>
	
</hibernate-mapping>


测试类
package vo.util.test;

import org.hibernate.Session;
import org.hibernate.Transaction;

import vo.util.HibernateUtil;
import vo.util.bean.Department;
import vo.util.bean.Employee;

public class ManytoOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
         // add();
          query(1);
	}
    static Department add(){
    	Session session = null;
    	Transaction tx = null;
    	try{
    		session =HibernateUtil.getSession();
    		tx = session.beginTransaction();
    		//…你的代码save,delete,update,get…
    		Department dpart=new Department();
    		dpart.setName("BSM部门");
    		Employee em=new Employee();
    		em.setName("员工许春荣");
    		em.setDerpartment(dpart);
    		session.save(dpart);
    		session.save(em);
    		
    		tx.commit();
    		return dpart;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
    
    static Employee query(int id){
    	Session session=null;
    	
    	try{
    	   session=HibernateUtil.getSession();
    	   Employee em=(Employee)session.get(Employee.class, id);
    	   System.out.println(em.getDerpartment().getName());
    		return em;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
}

总结:根据测试后的结果分析 发现我们可以在查询一个员工的信息,同时也可以把部门的信息给查
找出来,在员工的映射文件中,利用其many-to-one标签 就可以把员工的关系给映射上,在这种多对一的关系的数据录入
时候,必须先录入主实体类的数据,然后才录入从录入实体的数据,如果先录入从实体然后才主实体的数据,会在hibernate
的执行过程中,产生两条插入语句 一条更新语句 一条插入语句是插入的是从实体的值 但是对于其关联关系的那个外键会是空值
然后插入主实体的数据,最后更新其从实体的外键数据,这时的外键数据就是有值的了  但是我们一般在设计的时候,一般规定
外键关系是不能为空的,那么这样操作会报非空异常错误 



end 完毕!

 

分享到:
评论

相关推荐

    信息系统开发与管理——数据库练习题.doc

    (1) 多对多关系 (2)1对多 (3)多对多 KEY-5. (2) 上图E-R图转换为关系数据模型 产品(产品号,产品名,产品单价) 零件(零件号,零件名,单重,单价,材料号,材料量) 材料(材料号,材料名,计量单位,材料...

    数据库实验报告——医院管理系统.pdf

    图 1、医院管理系统功能模块图 2 数据库设计 2.1 数据库需求分析 通过对医院管理的内容和数据关系分析,我们设计的数据项和数据结构 如下: 员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、 身份证...

    数据库设计报告——工资管理系统.doc

    R图 图2.8 年终奖金表与属性之间的E-R图 图2.9 奖金等级表与属性之间的E-R图 图2.10 员工公众信息表与属性之间的E-R图 2.4逻辑结构设计:关系模式(带下划线的为主键) 1.把实体转换为关系模式 员工(员工编号,...

    人事管理系统课程设计报告(1).doc

    目 录 1. 前言——————————————— 2 2. 系统概况—————————————..."否 "与员工关系 " "出生年月 "日期型(8) "否 "出生年月 " 统计部门表 "列名 "数据类型 "可否为空 "说明 " "部门 "字符型

    人事管理系统课程设计报告.doc

    "否 "与员工关系 " "出生年月 "日期型(8) "否 "出生年月 " 社会关系表 "列名 "数据类型 "可否为空 "说明 " "编号 "数值型(10) "否 "编号 " "关系 "字符型(10) "否 "关系 " "与员工关系 "字符型(10) "否 "与...

    人事管理系统课程设计报告doc.doc

    人事管理系统课程设计报告doc MIS课程设计报告 二 三年九月 目 录 1. 前言——————————————— 2 2. 系统概况——————————..."否 "与员工关系 " "出生年月 "日期型(8) "否 "出生年月 " 统计部门

    数据库课程设计报告-人事管理系统.doc

    事假天数) 职位表(职位编号 职位名称 所属部门) 婚姻表(员工编号 婚姻状况) 政治面貌表(员工编号 政治面貌) (说明:以上关系模式达到第三范式) 3 数据库关系图: 六:前台界面设计 1 创建项目 启动程序...

    超精美实用简历模板40套——程序员、设计师、会计、翻译等可用/word格式

    政后勤事务,人事日常管理、人力资源6大模块熟悉,对招聘、员工关系、绩 效考核管理有独到的见解;了解各项劳动法律 法规,对劳资纠纷有较好的应对能力,熟悉人事行政相关文件的编写,熟练操作办公软件及报刊制作等...

    数据库资料

    主要包含最基础的数据库语句,很适合初学者,目标使用企业管理器创建数据库表设置表的主键、外键和建立表之间的关系为表增加约束数据完整性 数据完整性 数据存放在表中 “数据完整性的问题大多是由于设计引起的” ...

    ASP客户关系(CRM)系统源码

    公司多个部门与某个客户有工作关系和交叉,由于信息不共享,内部沟通不畅,有分工无协作,不能形成团队作战能力。 沟通效率低下 公司内部信息沟通不畅,影响工作效率,尤其是对客户反应能力。 工作思路紊乱 ...

    智能商务及应用案例.doc

    非结构化——非结构化的数据和信息主要是上面的提到的各个部门和各个员工创造和 收集的、没有放在各种交易系统中的内容,通常是以零散的文件形式存在和展现的;新 的商务智能概念纳入了非结构化内容的分析,但是非...

    战斗力客户关系管理系统-精简版v1.0.1.1.rar

    战斗力客户关系管理系统-精简版——首款拥有"全智能自定义"核心的CRM客户关系管理系统,是一套针对各行业众多企业需求特点推出的符合中国企业用户使用的企业信息化管理系统。本软件智能、实用、好用,能大大提高企业...

    后现代IT部门

    “公司业务到底想要什么,今天这样话题讨论的关键在于——为了在市场上一起成为赢家,IT打算如何与我结成伙伴关系?业务部门明白这个世界充斥着顾客永远都不想要的产品和IT创新。你只要知道:顾客究竟会在何时要求...

    薪资方案设计.doc

    基本工资与岗位工资: 基本工资——用于维持员工基本生活的工资 岗位工资——由岗位的责任大小、岗位任职条件、努力程度等因素决定的工资。按照 不同的职务或不同的技术等级核定不同的月薪资档级,进而根据绩效考核...

    招生培训实战教程.doc

    处理好与当地教委、其他职能部门的关系,取得他们的支持而进 校。 2)因亲友介绍而进校。亲友介绍某师生,以去拜访该师生的名义进校。 3)因合作需求进校。对私立、股份制、贵族学校采取联合办学形式。利用以上学校...

    《数据库系统及应用》作业.pdf

    - 1 - 《数据库系统及应用》期末大作业 一、 题目 根据如下 E-R 图,建立了自己所在公司的员工表 YGB,该表每行记录描述一员工,其中"领导"字段的值 要么为 NULL(表示该员工无领导,即最高领导) ,要么为该员工的...

    ISO9000程序文件.pdf

    如果使用部门关系到两个或两个以上职能部门的文 件,由管理者代表授权编写小组编写。技术类文件由全质办负责编写。 4.2.3 文件编号采用统一管理,由综合办公室负责。质量体系文件编 号如下: a.质量手册用Q/YFA-D ...

    销售送货管理软件

    应用对象: 小型商贸企业,中、小型个体私营(零售、批发)商户 ... &lt;br&gt; —————————————————————— 进一步详细了解该款软件,欢迎致电 ======================================

    SQE培训资料.pptx

    的视角(关注点) 新项目的开发 采购产品的质量/环保要求 技术规范 管理体系 部门协调 关系处理 应掌握的知识与能力要求 专业、技术、公正性 管理体系要求、审核的能力与技巧 五大工具:、、、、 工具、8D、统计学...

Global site tag (gtag.js) - Google Analytics