为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate初探之一对多映射

  • //删除学生信息 public static void delete(){ //获取对话 Session session=HibernateUtil.getSession(); // 开启事务 Transaction tx=session.beginTransaction(); //获取学生信息2 Student stu=(Student) session.get(Student.class, 2); //删除学生 如果修改,先创建班级信息g,在将获得的学生信息添加最后 保存session.save(g); session.delete(stu); //提交事务 tx.commit(); //关闭事物 HibernateUtil.closeSession(session); } //修改学生信息 public static void update(){ Grade g=new Grade("Java二班","Java软件开发二班"); Session session=HibernateUtil.getSession(); Transaction tx=session.beginTransaction(); Student stu=(Student) session.get(Student.class, 1); g.getStudents().add(stu); session.save(g); tx.commit(); HibernateUtil.closeSession(session); }
    查看全部
  • hibernate4.3的初始化 用于会话的获取和关闭: public class HibernateUtil{ private static SessionFactory sessionFactory; private static Session session;} static{ //创建configuration对象,读取hibernate.cfg.configure(); StandardsrciceRegistryBuilder ssrb=new SrandarsServlceRedistryBuilser() .applySettings(config.getProperties()); SrandardSerciceRegistry ssr=ssrb.build(); sessionFactory=config.buildSessionFactory(ssr); } //创建会话工厂sessionFactory获取 public static SessionFactory getSessionFactory(){ return sessionFactory; } //获取session public static Session getSession(){ session=sessionFactory.openSession(); return session; } //关闭session public static void closeSession(Sessionsession){ if(session!=null){ session.close(); } }
    查看全部
  • 3、实现为项目添加Hibernate支持 右击项目-->MyEclipse-->Add Hibernaet Capabilities-->选择hibernate版本(越高越好)-->...-->选择数据库连接-->.. 它能生成XXX.cfg.xml 文件还能生成HibernateSessionFactory工具类简化我们的操作
    查看全部
  • hibernate反向工程 数据库中的表变成持久化类和映射文件
    查看全部
  • 级联操作 保存班级的时候自动保存班级中学生的数据 student表中的数据
    查看全部
  • hibernate类型对应的Java类型
    查看全部
  • cascade属性
    查看全部
  • inverse属性
    查看全部
  • 单向多对一的关联
    查看全部
  • 一对多关系set的常用属性
    查看全部
  • (1)在多方创建一方的对象。 (2)在多方的配置文件中配置 many-to-one (3)通过测试是否成功插入。
    查看全部
  • cascade属性设为all时,所有操作都级联; 设为save-update时,在保存和更新时级联; 设为delete时,在删除时级联; 设为none时,所有操作都不级联。
    查看全部
  • 对于inverse属性的说明; 1、一方的hbm.xml文件的<set>节点的inverse属性指定了关联关系的控制方向,默认由one方来维护; 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。
    查看全部
  • 一、单向多对一关联 (1)简介 1.在己方(多方)表中的一个外键参照另一个表的主键 2.通过在多方持有一方的引用实现,需要在多方配置<many-to-one> (2)配置 1.在多方持久类定义一方的引用 private Grade grade;并getter,setter 2.在多方的映射文件中添加 <many-to-one name="指定对一方的引用,即一方引用所定义的属性grade" class="一方对应的持久化类,即关联实体类com.imooc.entity.Grade" cloumn="外键的列名gid" ></many-to-one> (3)测试 public static void save(){ Grade g=new Grade("Java一班", "Java软件开发一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //创建多对一的配置 s1.setGrade(g); s2.setGrade(g); Session s=HibernateUtil.getSession(); Transaction t=s.beginTransaction(); s.save(g); s.save(s1); s.save(s2); t.commit(); HibernateUtil.closeSession(s); } 二、双向多对一关联 (1)分别在持久化类中定义另一方的引用; 一方:private Set<Student>students=new HashSet<Student>();并setter,getter 多方:private Grade grade;并setter,getter; (2)关联关系配置 //一方 <set name="一方实体类定义的多方的引用,即多方属性Students" table="多方的表名Students"> <key column="关联外键的列gid"></key> <one-to-many class="多方实体类的全类名com.imooc.entity.Student" ></one> </set> //多方(同上略) (3)测试(同上略
    查看全部
  • public static void save(){ Grade g=new Grade("Java一班", "Java软件开发一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //创建多对一的配置 s1.setGrade(g); s2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); session.save(g); session.save(s1); session.save(s2); transaction.commit(); HibernateUtil.closeSession(session);
    查看全部

举报

0/150
提交
取消
课程须知
本课程主要讲解Java中Hibernate中的关联映射,需要对Hibernate基本用法、ORM的基本概念、单表映射等相关知识有一定的基础。
老师告诉你能学到什么?
1、Hibernate关联映射的类型 2、单向一对多关联的配置 3、单向多对一关联的配置 4、cascade和inverse属性的作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!