一 添加学生和班级测试代码
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=?
相关推荐
学生信息管理模块则用于添加、查询、修改和删除学生信息;成绩管理模块允许录入和查询学生的考试成绩。这些模块通过合理的接口交互,形成了一个完整的系统架构。 四、信息化管理与人工智能 在信息化管理的背景下,...
这里我们关注的是“一对多”关系的实现,以“hibernate+struts”框架为例,结合MySQL数据库,来创建一个学生对班级的增删改查示例。这个例子是一个典型的后端业务操作,它展示了如何通过整合这些技术来处理数据库中...
在Java的持久化框架Hibernate中,多对多(Many-to-Many)映射是一种常见的关系数据库模型,用于处理两个实体之间复杂的关系。本实例将详细阐述如何在Hibernate中实现多对多映射,并通过源代码和测试程序进行实战演示...
本教程将重点讲解如何在Hibernate中实现多对多双向关联,这是数据库设计中常见的一种关系类型,它允许一个实体实例与多个其他实体实例相互关联。 在数据库设计中,多对多关系意味着一个表的记录可以与另一个表的多...
在学生信息管理系统中,可能有多个Action类,如"StudentInfoAction",用于处理与学生信息相关的请求,如添加、修改、删除和查询学生信息。 2. **Spring**:Spring框架是核心的容器,管理应用对象的生命周期和依赖...
`hibernate-m2o-v2.0`可能是指Hibernate的多对一(ManyToOne)关系映射的一个版本,这通常用于表示一个学生属于一个班级的关系。 Spring框架则扮演着核心的胶水角色,它提供了依赖注入(DI)和面向切面编程(AOP)...
3. **业务逻辑层**:定义学生信息管理的各种业务规则,如添加学生、删除学生、修改信息、查询成绩等,这一层将数据访问层与用户界面解耦,提高了系统的可扩展性和复用性。 4. **持久化层**:通过数据库设计和优化,...
学生信息管理系统是教育机构日常运营中不可或缺的一部分,它有效地整合了学生的基本信息、学业成绩、出勤记录等多方面数据,提供了便捷的数据管理和分析功能。本系统采用SQL Server 2008作为数据库管理系统,利用...
1. 学生信息管理:系统提供添加、删除、修改和查看学生信息的功能。在前端界面,用户填写或选择相应信息后,通过HTTP请求发送到后台,控制器根据请求类型调用对应的服务,执行相应的数据库操作。 2. 教师信息展示:...
5. **业务逻辑**:系统可能包含增删改查(CRUD)操作,例如添加新学生、删除学生、修改学生信息、查询学生列表等。此外,还有课程管理、选课、成绩录入与查询等功能。这些业务逻辑通常由Service层实现,利用DAO...
在这个基于Java的学生信息管理系统中,我们将会探讨如何利用Java来实现一个高效、易用的管理平台,以满足对学生信息的录入、查询、修改和删除等需求。 首先,系统的架构设计至关重要。通常,学生信息管理系统会采用...
3. **信息添加与修改**:管理员可以添加新学生信息或修改现有信息。 4. **成绩管理**:录入、查看、修改和统计学生的课程成绩。 5. **报表生成**:可能包含班级平均分、个人总成绩等统计报告。 **源代码**: 1. **...
在这个学生信息管理系统中,用户可以通过Struts2的Action类进行登录、注册等操作,Spring管理Service层的业务逻辑,如添加、删除、修改和查询学生信息。Hibernate则负责将这些业务操作转化为对SQL Server数据库的增...
- **学生信息管理**:包括增删查改(CRUD)学生信息,如添加新学生、修改学生信息、删除学生、查询学生列表。 - **学生成绩管理**:管理学生的课程成绩,如录入成绩、修改成绩、统计平均分、最高分、最低分等。 6...
- 包括多对一、一对一、一对多、多对多等多种关联类型。 - **多对一关联映射**:一个实体可以属于多个实体之一,例如,一个学生可以属于多个班级中的一个。 - **一对一关联映射**: - **主键关联映射**:通过...
4. **业务逻辑处理**:例如,添加、删除、修改学生信息,查询成绩,统计分析等。这些功能的实现依赖于JavaBean或EJB组件,它们封装了具体的业务逻辑。 5. **异常处理**:为了保证系统的健壮性,需要对可能出现的...
2. 业务逻辑层:处理核心业务规则,如添加、删除、修改和查询学生信息,此层通常包含多个服务类。 3. 数据访问层:负责与数据库的交互,实现数据的存储和检索,可能使用JDBC(Java Database Connectivity)或ORM框架...
整合Spring MVC、Spring 3和Hibernate 4是一个涉及多个方面的工作,包括配置文件的设置、实体管理器的获取、数据源的配置等。以下是详细的知识点: 1. 工具和版本选择:在搭建Spring+SpringMVC+JPA+Hibernate平台时...
在这一模块,管理员可以添加、修改和删除学生的基本信息,包括姓名、性别、出生日期、班级等。Java提供了丰富的数据结构和算法,可以高效地处理这些数据。例如,使用ArrayList存储学生对象,通过HashMap快速查找特定...