package com.ddwei.entity;

import java.util.Set;

import org.hibernate.Session;
import org.hibernate.Transaction; import com.ddwei.util.HibernateUtil; /**
* 建立关联关系后,
* 可以方便的从一个导航对象,关联到另一个导航对象!
* 注意关联方向:一对多
* @author weijingli
*
*/
public class Test { public static void main(String[] args) {
// add();
// show();
// updateGrade();
deleteStu();
} //增加班级学生信息
public static void add(){ Grade g = new Grade("java一班","java一班是一个好班");
Student stu1 = new Student("秦皇","男");
Student stu2 = new Student("汉武","男");
Student stu3 = new Student("唐宗","男");
g.getStudents().add(stu1);
g.getStudents().add(stu2);
g.getStudents().add(stu3);
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
session.save(g);
session.save(stu1);
session.save(stu2);
session.save(stu3);
tx.commit();
HibernateUtil.closeSession(session);
} //查询班级学生信息
public static void show(){ Session session1 = HibernateUtil.getSession();
Grade grade1 = (Grade) session1.get(Grade.class, 1);//得到java1班
System.out.println("班级名称为:"+grade1.getGname());
Set<Student> students = grade1.getStudents();
for(Student stu:students){
System.out.println("学生姓名为:"+stu.getSname());
}
HibernateUtil.closeSession(session1);
} //修改学生所在班级信息
public static void updateGrade(){ Grade grade2 = new Grade("java二班","java二班介绍");
Session session2 = HibernateUtil.getSession();
Transaction tx2 = session2.beginTransaction();
Student student1 = (Student) session2.get(Student.class, 1);
grade2.getStudents().add(student1);//java二班添加学号为1的学生
session2.save(grade2);
tx2.commit();
HibernateUtil.closeSession(session2);
} //删除学生信息
public static void deleteStu(){
Session session2 = HibernateUtil.getSession();
Transaction tx2 = session2.beginTransaction();
Student stu2 = (Student)session2.get(Student.class, 3);
session2.delete(stu2);
tx2.commit();
HibernateUtil.closeSession(session2);
} }

Hibernate课程 初探一对多映射2-7 测试-修改和删除学生信息的更多相关文章

  1. hibernate课程 初探一对多映射2-6 测试-添加和查询学生信息

    package com.ddwei.entity; import java.util.Set; import org.hibernate.Session; import org.hibernate.T ...

  2. Hibernate课程 初探一对多映射4-3 测试--信息查询

    建立双向一对多关系,既可以由一方查询多方信息,同样可以由多方查询一方信息 demo: //查询学生所在班级 public static void showGidByStudent(){ Session ...

  3. Hibernate课程 初探一对多映射3-4 双向多对一的测试

    1 单向多对一和单向多对一的区别 比如部门和员工,一个部门下有很多员工,如果只查一个员工属于哪个部门,就用单向的,如果还要查一个部门下的所有员工,就用双向的. 2 双向多对一的配置 除了单向xml和双 ...

  4. Hibernate课程 初探一对多映射3-3 单向多对一的测试

    public static void testManyToOne(){ Student stu1 = new Student("小明","男"); Studen ...

  5. Hibernate课程 初探一对多映射4-2 cascade级联属性

    1 级联属性:hibernate一方和多方设置关联关系,当一方发生相应修改时(见下表),多方不用进行显式修改,也能进行相应修改.   级联在一方和多方xml中都可以设置 属性值 含义和作用 all 对 ...

  6. hibernate课程 初探一对多映射2-5 创建持久化类并配置映射文件

    学习点: 1 一对多映射,一方 Grade.hbm.xml的写法: <hibernate-mapping> <class name="com.ddwei.entity.Gr ...

  7. Hibernate课程 初探一对多映射5-2 Eclipse添加数据库连接

    1 Eclipse新建java项目 2 Windows ==> show view == >other ==>Data source Explorer 3 左侧视图 database ...

  8. Hibernate课程 初探一对多映射4-1 inverse属性

    1 <Set>节点的inverse属性默认由one方来维护(默认值为false).将inverse属性修改为true则由多方来维护.

  9. Hibernate课程 初探一对多映射3-2 单向多对一的配置

    1 多方实体类中加入,一方类和getset方法 //多方定义一个一方的引用 private Grade grade; public Grade getGrade() { return grade; } ...

随机推荐

  1. Git解决pull无法操作成功

    https://blog.csdn.net/chenjunfengf/article/details/78301957 场景 在git pull的时候,如果本地代码有改动,而服务器上代码也已经被其他人 ...

  2. tomcat启动后 项目运行缓慢,要几十到几百秒不等 怎么样./startup.sh 运行加快

    修改 linux系统中 /usr/local/jdk1.8.0_11/jre/lib/security/java.security 借力 好文章.我们新的Linux系统,部署了多个 Tomca,同时重 ...

  3. luogu1999 高维正方体

    神仙题 分析法是个好方法 反正xjb分析就分析出来了 首先,i维立方体的点数(0维元素数)为\(2^i\) 首先0维肯定是1(不就是一个点吗) 你想想你是怎么用点拼成线段的 你把两个点往地上一扔 然后 ...

  4. IDEA总是启动不了

    时常怎么都打不开这个软件,或者很久很久才打开. 解决办法:在任务管理器将IDEA结束进程,再去打开软件,就可以了.

  5. [ZJOI2018]历史(LCT)

    这篇还发了洛谷题解 [Luogu4338] [BZOJ5212] 题解 题意 给出一棵树,给定每一个点的 \(access\) 次数,计算轻重链切换次数的最大值,带修改. 先考虑不带修改怎么做 假设 ...

  6. Kibana6.x.x——【Running "run:optimizeBuild" (run) task】出现警告信息

    Warning: non-zero exit code 64 Use --force to continue. 还未找到解决方法,先记录下来.

  7. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_发布者策略控制

    在 读经典——<CLR via C#>(Jeffrey Richter著) 笔记_高级管理控制(配置)中,是由程序集的发布者将程序集的一个新版本发送给管理员,后者安装程序集,并手动编辑应用 ...

  8. Windows10上安装OpenStack

    1. 启动Hyper-V 2. 在Hyper-V内安装Ubuntu 这两部可以参考http://www.cnblogs.com/jimmy-y/p/5328306.html(Ubuntu16类似) 3 ...

  9. 测试用例逐步演进-xmind2excel(Python版)测试用例逐步演进-xmind2excel(Python版)

    最近,我在做项目的时候,经常被问到一个问题:如何做测试评审会更有效呢? 只要做过测试用例评审,特别是比较复杂的测试用例评审的时候,很多测试同学都会苦恼于如何能更有效的向大家说出自己的测试设计思路. 当 ...

  10. FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    官网:http://ffmpeg.org 一.FFmpeg安装 安装依赖包: yum install libtheora-devel libvorbis-devel 1 FFmpeg编译安装: 由于系 ...