public class StuDao<T> extends BaseDao {
private TeaDao<Teachers> teaDao = new TeaDao<Teachers>();
/*
* 查询多对多数据
*/
public Map<String, List<T>> queryAllStudentsInfo(boolean isQuerySingle,
Integer stuId) {
Map<String, List<T>> map = new HashMap<String, List<T>>();
List<Teachers> teaList = new ArrayList<Teachers>();
Session session = super.getSession();
List<Students> stuList = null;
if (isQuerySingle) {
stuList = session.createQuery(" from Students s where s.stuid=?")
.setInteger(0, stuId).list();
} else {
stuList = session.createQuery(" from Students s").list();
}
int listSize = stuList.size();
for (int i = 0; i < listSize; i++) {
Students stu = stuList.get(i);
Set<Teachers> teaSet = stu.getTeachers();
Iterator<Teachers> ite = teaSet.iterator();
while (ite.hasNext()) {
Teachers queryTea = ite.next();
Teachers newTea = new Teachers();
Integer teaId = queryTea.getTeaid();
String teaName = queryTea.getTeaname();
newTea.setTeaid(teaId);
newTea.setTeaname(teaName);
newTea.getStudents().add(stu);
teaList.add(newTea);
}
}
map.put("students", (List<T>) stuList);
map.put("teachers", (List<T>) teaList);
return map;
}
分享到:
相关推荐
本范例主要探讨了Hibernate中的两种关联关系:一对多(One-to-Many)和多对一(Many-to-One)。这两种关联关系是数据库设计中常见的实体关系映射,理解并熟练掌握它们对于开发复杂的数据库驱动应用至关重要。 一对...
【标题】:“Hibernate 范例.rar”是一个包含关于Hibernate框架实际应用的示例项目,主要展示如何使用Hibernate进行数据库查询。 【描述】:Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者在Java应用...
- **ORDER BY** 用于对查询结果进行排序。 ### 2. 使用 HQL 进行参数化查询 第二个示例展示了如何使用 HQL 进行参数化查询。方法名为 `getDutyManOfGroup`,其中 HQL 语句如下: ```java "from syidt.modules.grp....
Spring还包含了数据访问抽象,如JDBC模板和DAO支持,以及对Hibernate的集成,方便在Spring环境中使用Hibernate。此外,Spring MVC是Spring提供的一个Web MVC框架,可以与Struts2协同工作,提供另一种实现MVC设计模式...
在Hibernate项目中,我们可以使用JUnit测试数据的插入、更新、查询和删除操作,确保数据库操作的正确性。 8. **自定义测试类**: 自定义测试类通常是为了模拟特定场景或功能的测试,可能包含更复杂的数据状态设置和...
2. UserService通过Spring的JdbcTemplate或Hibernate的SessionFactory执行SQL查询或持久化操作。 3. 数据库操作完成后,UserService返回结果给Action。 4. Action根据业务逻辑处理结果,然后通过Struts2的Result类型...
它支持多种数据库,提供了丰富的API和HQL(Hibernate Query Language)查询语言。 Spring框架则是企业级应用中的全能框架,提供IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切...
总之,Hibernate的缓存机制包括一级缓存、二级缓存和查询缓存,它们通过减少对数据库的访问次数来提高系统性能。正确地配置和使用缓存,可以显著提升应用的响应速度,特别是对于读操作密集型的应用来说,效果尤为...
这个"Struts2+Hibernate+Spring整合开发深入剖析与范例应用02"的学习资源,很可能是关于这三大框架集成使用的详细教程或案例集。02这个文件名可能代表系列的第二部分,意味着它可能在前一部分的基础上进一步深入讲解...
在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用06"中,我们可能涉及以下几个关键知识点: 1. **Struts2框架**:Struts2是一个强大的MVC框架,用于构建动态Web应用。它的核心是Action类,它处理HTTP请求并...
本范例将带你逐步了解如何构建一个基于 Struts2 和 Hibernate 的登录系统,让你更好地掌握这两个流行框架的结合使用。 首先,我们需要的开发环境包括 MyEclipse 6.0、Tomcat 5.5、JDK 1.5 以及 MySQL 5.0。为了实现...
在SpringMVC中,可以利用Spring的数据访问/集成模块来管理Hibernate Session,实现事务控制和DAO(数据访问对象)层的解耦。 4. **整合流程**:在SpringMVC+Freemarker+Hibernate整合中,通常会首先配置Spring的...
首先,集合映射是Hibernate中处理一对多、多对多关系的核心机制。它允许我们将一个实体对象与多个相关对象关联起来,这些相关对象可以存储在一个集合中。在Java中,常见的集合类型有List、Set、Map等,它们在...
标题 "ExtJS+Hibernate的小范例" 暗示了这个压缩包可能包含一个使用ExtJS前端框架与Hibernate后端持久层框架结合的简单示例项目。ExtJS是一款流行的JavaScript库,用于构建富客户端的Web应用程序,而Hibernate是Java...
构建基于Struts和Hibernate的登录系统,不仅需要掌握框架的基本使用,还要求开发者熟悉数据库配置、实体类设计、映射文件编写等多方面的知识。通过上述分析,我们可以看到,合理的设计和配置对于系统的顺利运行至关...
**Spring** 是一个全面的企业级应用开发框架,它涵盖了依赖注入(Dependency Injection)、面向切面编程(AOP)、数据访问、事务管理等多个方面。Spring的核心是IoC(Inversion of Control)容器,它负责管理和装配...
Hibernate通过配置文件(hibernate.cfg.xml)管理数据库连接,提供Session API进行数据持久化操作,如增删改查,并支持缓存和事务管理。 **Spring** 框架是Java企业级应用的核心,提供依赖注入(DI)和面向切面编程...
17.1.7 对查询结果排序 17.1.8 分页查询 17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 ...
在"Struts2+Hibernate+Spring三大框架集成范例"中,我们可以看到一个综合性的示例项目,这个项目包含了基本的登录、查询和数据操作功能,这些都是Web应用的核心部分。以下是这些框架集成的关键知识点: 1. **Struts...
在这个简约范例中,我们将探讨如何使用Hibernate进行基本的数据操作,包括增、删、查、改,并了解如何处理线程安全性问题。 ### 1. Hibernate基础 Hibernate通过映射Java类到数据库表,使得开发人员可以使用面向...