hibernate一对一.ppt

上传人:小飞机 文档编号:5433128 上传时间:2023-07-06 格式:PPT 页数:17 大小:514KB
返回 下载 相关 举报
hibernate一对一.ppt_第1页
第1页 / 共17页
hibernate一对一.ppt_第2页
第2页 / 共17页
hibernate一对一.ppt_第3页
第3页 / 共17页
hibernate一对一.ppt_第4页
第4页 / 共17页
hibernate一对一.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《hibernate一对一.ppt》由会员分享,可在线阅读,更多相关《hibernate一对一.ppt(17页珍藏版)》请在三一办公上搜索。

1、Hibernate一对一,课程目标,BaseDAO一对一关系介绍一对一关系配置 一对一查询 一对一级联保存、修改、删除,提高代码重用性,/UserDAOImpl_HBN.javapublic void addUserInfo(UserInfo user)Session session=null;Transaction tx=null;trysession=sessionFactory.openSession();tx=session.beginTransaction();session.save(user);mit();catch(Exception ex)ex.printStaceTrace

2、();finally session.close();,/BaseDAO.javapublic void add(Object obj)Session session=null;Transaction tx=null;trysession=sessionFactory.openSession();tx=session.beginTransaction();session.save(obj);mit();catch(Exception ex)ex.printStaceTrace();finally session.close();,将基本的增删改方法提取到BaseDAO中,各模块的DAO继承Ba

3、seDAO,就不再需要提供增删改的方法了,即各模块重用了BaseDAO,BaseDAO,public class BaseDAO.public void add(Object o)session=HibernateSessionFactory.getSession();/开启连接 tx=session.beginTransaction();/开启事务 session.save(o);mit();。public void updateObject o)session=HibernateSessionFactory.getSession();tx=session.beginTransaction(

4、);/开启事务 session.update(o);mit();。public void delete(Object o)session=HibernateSessionFactory.getSession();tx=session.beginTransaction();/开启事务 session.delete(o);mit();。,在此忽略了异常处理的代码,那也是很重要的,HibernateSessionFactory是自己编写的一个实现合理管理Session的类,一对一关系介绍,1、什么是一对一关系例如员工与帐号,一个员工只能有一个帐号,而一个帐号只能属于一个员工的;我们把这种关系称为一对

5、一关系2、主键关联表示一对一关系一对一关系一般用主键关联,也就是说用主键值来维护两者的关系,一个表的主键存放另一个表的主键值。例如在员工与帐号中,我们取员工表的主键值作为帐号的主键值。当然在一对一关系中我们也可以用外键关联,这节课我们主要讲一对一主键关联。,一对一关系表、类设计,员工与帐号的表设计 员工与帐号的类设计,一对一关系配置,员工映射文件(),一对一关系配置,帐号映射文件(),emp的name属性值一致-,一对一查询,查询oid为2的员工信息,public static void main(String args)SessionFactory factory=new Configura

6、tion().configure().buildSessionFactory();Session session=factory.openSession();Transaction tx=session.beginTransaction();Employee emp=(Employee)session.get(Employee.class,2);/查询Id为2的员工 mit();session.close();/把员工和帐号信息打印出来 System.out.println(员工名字:+emp.getEmpName()+帐号:+emp.getUserinfo().getName();,一对一查

7、询,所有员工列表,一对一级联保存,在员工管理模块中Action组件中同时添加UserInfo类型和Employee类型的属性,一对一级联保存,在添加员工时级联保存员工帐号:,cascade可取以下值:“none”:做任何操作都不影响附属对象“save-update”:级联保存或修改“delete”:级联删除“delete-orphan”:级联删除并从缓存中清除附属对象all:级联保存、修改、删除,Emp和userinfo设置为双向关联,一对一加载,修改员工时取出员工帐号一起修改一对一默认是级联加载,所以配置文件不需要改动,员工对帐号,帐号对员工,一对一级联修改,修改时根对象主键必须有值、附属对象主键有值则修改,主键无值则插入新记录,一对一级联修改在帐号这边配置cascade=“all”,员工对帐号,帐号对员工,一对一级联删除,先加载后删除或者确定附属对象主键有值才能级联删除设置级联属性,员工对帐号,帐号对员工,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号