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. loj #2143. 「SHOI2017」组合数问题

    #2143. 「SHOI2017」组合数问题   题目描述 组合数 Cnm\mathrm{C}_n^mC​n​m​​ 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...

  2. P1114 “非常男女”计划

    题意:给你一个01串,求满足0和1总数相等的最大字串   $n\ \le\ 10^5$ 1.$O(n^3)$枚举起点终点,统计判断是否成立 2.$O(n^2)$先$O(n)$时间计算01个数的前缀和, ...

  3. 状压DP【洛谷P1896】 [SCOI2005]互不侵犯

    P1896 [SCOI2005]互不侵犯 题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子 ...

  4. linux网络编程中的基本概念

    int close(int fd)(假设是服务器端) close 关闭了自身数据传输的两个方向.close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程.该套接字描述符不能 ...

  5. git ignore文件

    创建.gitignore文件来设置git要忽略的文件模式: 官方文件列列表:https://github.com/github/gitignore 1. 所有空行或者以 # 开头的行都会被 Git 忽 ...

  6. Git的安装使用

    1.什么是Git Git是一个自由和开源的分布式版本管理工具,用于有效.高速的处理任何或大或小的项目.最初由Linux Torvalds编写,用于帮助管理Linux内核开发而开发的一个开放源码的版本管 ...

  7. 查询linux服务器有哪些IP在连接

    查询linux服务器有哪些IP在连接 netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 查看linux的 ...

  8. Python 初识爬虫-**机场出港业务

    # -*- coding:utf-8 -*- from lxml import etree import requests ##先进单页测试,然后在进行多页循环 没有解决的问题,动态解决最大页数,目前 ...

  9. thinkPHP5.0验证器自定义验证规则

    自定义验证规则 protected $rule = [ 'views' => 'require|number|checkviews:0',//checkviews为自定义验证规则,0是传过去的规 ...

  10. js模仿微信语音播放的小功能

    自己写的一个模仿微信语音播放的小功能,实现的主要功能是:点击播放,点击暂停,播放切换,,,  代码如下: <!DOCTYPE html> <html lang="en&qu ...