博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate双向一对一对象关系模型映射
阅读量:4677 次
发布时间:2019-06-09

本文共 3512 字,大约阅读时间需要 11 分钟。

一个员工一辆车:one-to-one

实现一:让汽车表中的外键唯一

1 create table emp 2 ( 3     eid int primary key auto_increment, 4     ename varchar 5 ); 6 create table car 7 ( 8     cid int primary key auto_increment, 9     cnumber varchar,10     eid int,11     constraint fk_eid foreign key(eid) referecnces emp(eid),12     constraint uk_eid unique(eid)13 );

实现二:让汽车表中的主键引用员工表的主键,汽车表中的主键也充当外键

1 create table emp 2 ( 3     eid int primary key auto_increment, 4     ename varchar 5 ); 6 create table car 7 ( 8     cnumber varchar, 9     cid int,10     constraint fk_cid foreign key(cid) referecnces emp(eid),11     constraint pk_cid primary key(cid)12 );

2.1描述java的数据模型

 

2.2配置pojo类

  

2.3数据库的数据模型

 

2.4进行curd操作

2.4.1 添加员工

1 /** 2  * 添加员工信息 3  * ****/ 4 @Test 5 public void saveEmp() 6 { 7     //获得Session 8     Session session=sf.openSession(); 9     //开启事务10     Transaction tr=session.beginTransaction();11     //创建员工对象12     Emp emp= new Emp();13     emp.setEname("张三");14     session.save(emp);15     //提交事务16     tr.commit();17     //释放资源18     session.close();19 }

2.4.2添加车辆信息

1 /** 2  * 添加车辆信息 3  * ****/ 4 @Test 5 public void saveCar() 6 { 7     //获得Session 8     Session session=sf.openSession(); 9     //开启事务10     Transaction tr=session.beginTransaction();11     //创建汽车对象12     Car car = new Car();13     car.setCname("奥拓");14     //创建员工对象15     Emp emp=new Emp();16     emp.setEid(1); //给定的id数据库必须存在[A1] 17     //指定汽车对应的员工18     car.setEmp(emp);19     session.save(car);20     //提交事务21     tr.commit();22     //释放资源23     session.close();24 }

2.4.3 修改员工信息

1 /** 2  * 修改员工信息 3  * ****/ 4 @Test 5 public void updateEmp() 6 { 7     //获得Session 8     Session session=sf.openSession(); 9     //开启事务10     Transaction tr=session.beginTransaction();11     //查询员工对象12     Emp emp= (Emp) session.get(Emp.class, 1);13     emp.setEname("李四");14     //获得该员工的车辆对象15     Car car = emp.getCar();16     car.setCname("VOV");17     //提交事务18     tr.commit();19     //释放资源20     session.close();21 }

2.4.4添加新员工新车辆

默认的级联效果:因为car的主键需要引用emp的主键,所以emp必须首先进行保存

1 /** 2  * 添加车辆和员工信息 3  * ****/ 4 @Test 5 public void saveCarEmp() 6 { 7     //获得Session 8     Session session=sf.openSession(); 9     //开启事务10     Transaction tr=session.beginTransaction();11     //创建汽车对象12     Car car = new Car();13     car.setCname("奥拓");14     //创建员工对象15     Emp emp=new Emp();16     emp.setEname("王五");17     //指定汽车对应的员工18     car.setEmp(emp);19     session.save(car);20     System.out.println("emp--------------"+emp.getEid());21     //提交事务22     tr.commit();23     //释放资源24     session.close();25 }

2.4.5删除员工信息

1 /***通过员工删除汽车***/ 2 @Test 3 public void deleteEmp() 4 { 5     //获得Session 6     Session session=sf.openSession(); 7     //开启事务 8     Transaction tr=session.beginTransaction(); 9     //查询员工的对象10     Emp emp= (Emp) session.get(Emp.class, 1);11     //删除子表12     session.delete(emp.getCar());13     //删除主表14     session.delete(emp);15     //提交事务16     tr.commit();17     //释放资源18     session.close();19 }

2.4.6查询员工信息

员工姓名     车辆名称

1 /***查询员工信息***/ 2 @Test 3 public void selectEmp() 4 { 5     //获得Session 6     Session session=sf.openSession(); 7     //开启事务 8     Transaction tr=session.beginTransaction(); 9     //查询员工的对象10     List
elist=session.createCriteria(Emp.class).list();11 for(Emp e:elist){12 System.out.println(e.getEname()+"\t"+e.getCar().getCname());13 }14 //提交事务15 tr.commit();16 //释放资源17 session.close();18 }

Emp的id必须在数据库存在,而且某个员工的id只能使用一次。

Emp的id是cari的主键和外键

 

转载于:https://www.cnblogs.com/guanghe/p/6099200.html

你可能感兴趣的文章
Java环境变量设置
查看>>
【JBPM4】判断节点decision 方法3 handler
查看>>
filter 过滤器(监听)
查看>>
Linux进程间通信---共享内存
查看>>
Computer Information
查看>>
交换机/路由器上的 S口 F口 E口
查看>>
P1298(矩阵切割)DP
查看>>
wzplayer for delphi demo截图
查看>>
团队第二周:SRS文档
查看>>
Zookeeper的安装与使用:
查看>>
密码策略限制最大与最小长度
查看>>
正则表达式模式
查看>>
使用iframe实现同域跨站提交数据
查看>>
Mouse点击之后,复制GridView控件的数据行
查看>>
ASP.NET开发,从二层至三层,至面向对象 (2)
查看>>
如何查看自己电脑支持OpenGL core版本
查看>>
页面元素定位 XPath 简介
查看>>
[转]loadrunner:系统的平均并发用户数和并发数峰值如何估算
查看>>
Linux下Tomcat重新启动
查看>>
HTML Table to Json
查看>>