`
cakin24
  • 浏览: 1396247 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

测试Hibernate添加查询修改删除学生信息(一对多的关系)

阅读更多
一 添加学生和班级测试代码
import com.imooc.util.HibernateUtil;
 
/*
 * 单向一对多关系关系(班级--->学生)
 * 建立关联关系后,可以方便的从一个对象导航到另一个对象
 * 注意关联的方向
 */
public class Test {
        public static void main(String[] args) {
                add();                
        }
        
        //将学生添加到班级
        public static void add(){
                Grade g=new Grade("Java一班", "Java软件开发一班");
                Student stu1=new Student("张三", "男");
                Student stu2=new Student("穆女神", "女");
                
                //如果希望在学生表中添加对应的班级编号,需要在班级中添加学生,建立关联关系
                g.getStudents().add(stu1);
                g.getStudents().add(stu2);
                
                Session session=HibernateUtil.getSession();
                Transaction tx=session.beginTransaction();
                session.save(g);
                session.save(stu1);
                session.save(stu2);
                tx.commit();
                HibernateUtil.closeSession(session);
        }
}
 
二 测试结果
Hibernate: select max(gid) from grade
Hibernate: select max(sid) from student
Hibernate: insert into grade (gname, gdesc, gid) values (?, ?, ?)
Hibernate: insert into student (sname, sex, sid) values (?, ?, ?)
Hibernate: insert into student (sname, sex, sid) values (?, ?, ?)
Hibernate: update student set gid=? where sid=?
Hibernate: update student set gid=? where sid=?


 
 
三 查询班级信息和班级中的学生信息测试代码
package com.imooc.test;
 
import java.util.Set;
 
import org.hibernate.Session;
import org.hibernate.Transaction;
 
import com.imooc.entity.Grade;
import com.imooc.entity.Student;
import com.imooc.util.HibernateUtil;
 
/*
 * 单向一对多关系关系(班级--->学生)
 * 建立关联关系后,可以方便的从一个对象导航到另一个对象
 * 注意关联的方向
 */
public class Test {
        public static void main(String[] args) {
                findStudentsByGrade();      
        }
        
        //查询班级中包含的学生
        public static void findStudentsByGrade(){
                Session session=HibernateUtil.getSession();
                Grade grade=(Grade) session.get(Grade.class, 1);
                System.out.println(grade.getGname()+","+grade.getGdesc());
                
                Set<Student> students=grade.getStudents();
                for(Student stu:students){
                        System.out.println(stu.getSname()+","+stu.getSex());
                }
        }
}
 
四 测试结果
Hibernate: select grade0_.gid as gid1_0_0_, grade0_.gname as gname2_0_0_, grade0_.gdesc as gdesc3_0_0_ from grade grade0_ where grade0_.gid=?
Java一班,Java软件开发一班
Hibernate: select students0_.gid as gid4_0_0_, students0_.sid as sid1_1_0_, students0_.sid as sid1_1_1_, students0_.sname as sname2_1_1_, students0_.sex as sex3_1_1_ from student students0_ where students0_.gid=?
穆女神,女
张三,男
 
五 修改学生信息测试代码
        //修改学生信息
        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);
        }
 
六 测试结果
Hibernate: select student0_.sid as sid1_1_0_, student0_.sname as sname2_1_0_, student0_.sex as sex3_1_0_ from student student0_ where student0_.sid=?
Hibernate: select max(gid) from grade
Hibernate: insert into grade (gname, gdesc, gid) values (?, ?, ?)
Hibernate: update student set gid=? where sid=?


 
 
七 删除学生信息测试代码
        //删除学生信息
        public static void delete(){
                Session session=HibernateUtil.getSession();
                Transaction tx=session.beginTransaction();
                Student stu=(Student) session.get(Student.class, 2);
                session.delete(stu);
                tx.commit();
                HibernateUtil.closeSession(session);
        }
 
八 测试结果
Hibernate: select student0_.sid as sid1_1_0_, student0_.sname as sname2_1_0_, student0_.sex as sex3_1_0_ from student student0_ where student0_.sid=?
Hibernate: delete from student where sid=?

 



 
  • 大小: 21.7 KB
  • 大小: 18.7 KB
  • 大小: 31.2 KB
2
0
分享到:
评论

相关推荐

    Struts2+Hibernate学生信息管理系统.zip

    学生信息管理模块则用于添加、查询、修改和删除学生信息;成绩管理模块允许录入和查询学生的考试成绩。这些模块通过合理的接口交互,形成了一个完整的系统架构。 四、信息化管理与人工智能 在信息化管理的背景下,...

    hibernate+struts一对多增删改查demo(学生对班级)

    这里我们关注的是“一对多”关系的实现,以“hibernate+struts”框架为例,结合MySQL数据库,来创建一个学生对班级的增删改查示例。这个例子是一个典型的后端业务操作,它展示了如何通过整合这些技术来处理数据库中...

    Hibernate多对多映射

    在Java的持久化框架Hibernate中,多对多(Many-to-Many)映射是一种常见的关系数据库模型,用于处理两个实体之间复杂的关系。本实例将详细阐述如何在Hibernate中实现多对多映射,并通过源代码和测试程序进行实战演示...

    Hibernate教程14_关系映射之多对多双向关联

    本教程将重点讲解如何在Hibernate中实现多对多双向关联,这是数据库设计中常见的一种关系类型,它允许一个实体实例与多个其他实体实例相互关联。 在数据库设计中,多对多关系意味着一个表的记录可以与另一个表的多...

    基于ssh的学生信息管理系统

    在学生信息管理系统中,可能有多个Action类,如"StudentInfoAction",用于处理与学生信息相关的请求,如添加、修改、删除和查询学生信息。 2. **Spring**:Spring框架是核心的容器,管理应用对象的生命周期和依赖...

    学生班级的struts2-hibernate-spring

    `hibernate-m2o-v2.0`可能是指Hibernate的多对一(ManyToOne)关系映射的一个版本,这通常用于表示一个学生属于一个班级的关系。 Spring框架则扮演着核心的胶水角色,它提供了依赖注入(DI)和面向切面编程(AOP)...

    JAVA+MYsql学生信息管理系统

    3. **业务逻辑层**:定义学生信息管理的各种业务规则,如添加学生、删除学生、修改信息、查询成绩等,这一层将数据访问层与用户界面解耦,提高了系统的可扩展性和复用性。 4. **持久化层**:通过数据库设计和优化,...

    学生信息管理系统

    学生信息管理系统是教育机构日常运营中不可或缺的一部分,它有效地整合了学生的基本信息、学业成绩、出勤记录等多方面数据,提供了便捷的数据管理和分析功能。本系统采用SQL Server 2008作为数据库管理系统,利用...

    学生信息管理java

    1. 学生信息管理:系统提供添加、删除、修改和查看学生信息的功能。在前端界面,用户填写或选择相应信息后,通过HTTP请求发送到后台,控制器根据请求类型调用对应的服务,执行相应的数据库操作。 2. 教师信息展示:...

    ssh学生管理系统

    5. **业务逻辑**:系统可能包含增删改查(CRUD)操作,例如添加新学生、删除学生、修改学生信息、查询学生列表等。此外,还有课程管理、选课、成绩录入与查询等功能。这些业务逻辑通常由Service层实现,利用DAO...

    基于java学生信息管理系统

    在这个基于Java的学生信息管理系统中,我们将会探讨如何利用Java来实现一个高效、易用的管理平台,以满足对学生信息的录入、查询、修改和删除等需求。 首先,系统的架构设计至关重要。通常,学生信息管理系统会采用...

    基于JSP的学生信息管理系统

    3. **信息添加与修改**:管理员可以添加新学生信息或修改现有信息。 4. **成绩管理**:录入、查看、修改和统计学生的课程成绩。 5. **报表生成**:可能包含班级平均分、个人总成绩等统计报告。 **源代码**: 1. **...

    学生信息管理系统毕业设计

    在这个学生信息管理系统中,用户可以通过Struts2的Action类进行登录、注册等操作,Spring管理Service层的业务逻辑,如添加、删除、修改和查询学生信息。Hibernate则负责将这些业务操作转化为对SQL Server数据库的增...

    java实现学生成绩管理系统源码(学生信息管理 学生成绩管理 学生信息管理)

    - **学生信息管理**:包括增删查改(CRUD)学生信息,如添加新学生、修改学生信息、删除学生、查询学生列表。 - **学生成绩管理**:管理学生的课程成绩,如录入成绩、修改成绩、统计平均分、最高分、最低分等。 6...

    hibernate学习笔记

    - 包括多对一、一对一、一对多、多对多等多种关联类型。 - **多对一关联映射**:一个实体可以属于多个实体之一,例如,一个学生可以属于多个班级中的一个。 - **一对一关联映射**: - **主键关联映射**:通过...

    学生信息管理系统j2ee

    4. **业务逻辑处理**:例如,添加、删除、修改学生信息,查询成绩,统计分析等。这些功能的实现依赖于JavaBean或EJB组件,它们封装了具体的业务逻辑。 5. **异常处理**:为了保证系统的健壮性,需要对可能出现的...

    基于Struts+Hibernate+Spring的Web_应用开发

    6. 理解Hibernate的一对一、一对多、多对一、多对多等关联映射关系。 7. 实践一个小型的Hibernate应用,例如学生管理系统,包括增删查改操作,体验Hibernate简化数据库操作的优势。 【任务二】:Spring 在10课时的...

    xueshengxinxi.rar_java 信息管理系统_学生信息管理系统_学生信息管理系统 JAVA

    2. 业务逻辑层:处理核心业务规则,如添加、删除、修改和查询学生信息,此层通常包含多个服务类。 3. 数据访问层:负责与数据库的交互,实现数据的存储和检索,可能使用JDBC(Java Database Connectivity)或ORM框架...

    springmvc+spring3+hibernate4整合

    整合Spring MVC、Spring 3和Hibernate 4是一个涉及多个方面的工作,包括配置文件的设置、实体管理器的获取、数据源的配置等。以下是详细的知识点: 1. 工具和版本选择:在搭建Spring+SpringMVC+JPA+Hibernate平台时...

Global site tag (gtag.js) - Google Analytics