`

多表关联-java层出来

    博客分类:
  • hql
 
阅读更多
一种方法:无值传递(交给java处理)
/**
  * 根据教师状态查询教师信息列表(可多状态)
  */
 @Override
 public PaginationSupport getTeacherListByTypes(
   LinkedHashMap<String, String> sort, int page, int countPerPage,
   Integer[] teacherStates, Long fieldId) {

  List<String> pn = new ArrayList<String>();
  pn.add("fieldId");
  //pn.add("teacSchoolEndTime");
  List<Object> pv = new ArrayList<Object>();
  pv.add(fieldId!=null?"%,"+fieldId.toString()+",%":"%%");
  //pv.add(new Date());
  
  String[] pns = new String[pn.size()];
  pn.toArray(pns);
  
  String hql="select distinct tti from SysTeaTeactherInfo tti " +
    "left join tti.sysTeaProfFields tpf where concat(',',trim(str(tpf.fieldId)),',',tpf.fieldFatherStr) like :fieldId " ;

  
//	 String hql = "select new Test(tti.teacherName,ept.teacSchoolStartTime) from SysTeaTeactherInfo tti " +
//	 "left join SysEduProjectTeacher ept on ept.sysTeaTeactherInfo.teacherId = tti.teacherId" +
//	 "left join tti.sysTeaProfFields tpf where tpf.fieldId like :fieldId " ;
//	 
//	 if(sort!=null&&sort.size()>0){
//	 String order = addOrder(sort);
//	 if(order!=null&&order!=""){
//	 hql = hql+" order by "+order;
//	 }
//	 }else{
//	 hql +=" order by rcd.croomBeginTime asc";
//	 }
  
  return this.findByHqlOnPage(hql, page, countPerPage,new String[]{"fieldId"},new Object[]{"%,"+fieldId.toString()+",%"});
  
 } 


//教师是否在校
  if(this.getSysEduProjectTeachers()!=null){
   Date comeTime = null;
   Date endTime = null;
   Iterator<SysEduProjectTeacher> it = this.getSysEduProjectTeachers().iterator();
   while(it.hasNext()){
    SysEduProjectTeacher sysEduProjectTeacher = it.next();
    Date comeDate = sysEduProjectTeacher.getTeacSchoolStartTime();
    Date endDate = sysEduProjectTeacher.getTeacSchoolEndTime();
    if(endDate.compareTo(nowDate)>=0){
     comeTime = comeDate;
     endTime = endDate;
    }
   }
   super.putMap("comeTime", comeTime==null?"不在校":DateUtil.toString(comeTime));
   super.putMap("endTime", endTime==null?"不在校":DateUtil.toString(endTime));
  }else{
   super.putMap("comeTime", "不在校");
   super.putMap("endTime", "不在校");
  }
  
  if(this.getSysEduProjectLessons()!=null){
   double sum = 0;
   Iterator<SysEduProjectLesson> it = this.getSysEduProjectLessons().iterator();
   while(it.hasNext()){
    SysEduProjectLesson sysEduProjectLesson = it.next();
    sum += sysEduProjectLesson.getLessonTeacherPoint();
   }
   double avg = sum/this.getSysEduProjectLessons().size();
   avg = Math.round(avg*100);
   avg = avg/100.0;
   super.putMap("avg", avg);
  }else {
   super.putMap("avg", "0");
  }
分享到:
评论

相关推荐

    15.2.2-数据表关联关系分析-Java-Web程序设计教程-[共2页].pdf

    在Java Web应用程序中,这些数据表通常会通过实体类映射到持久化层,如使用Hibernate或MyBatis等框架,实现数据的CRUD操作。 此外,为了实现图书馆系统的功能,还需要设计其他相关表,比如读者表(可能包含读者个人...

    mysql-connector-java-5.1.4.jar.rar

    在描述中提到的“逆向生成实体类及XML”,这是指使用工具或框架(如 MyBatis Generator 或 MyEclipse 的逆向工程功能)从现有的数据库表结构自动生成 Java 实体类和 MyBatis 的 XML 映射文件。这些实体类代表了...

    weka-3.7.3.jar- java开发包

    这个压缩包包含的是 Weka 3.7.3 版本的 Java 开发包,它允许开发者在自己的 Java 应用程序中直接集成和调用 Weka 的功能。 1. **Weka 概述**: Weka 是 "Waikato Environment for Knowledge Analysis" 的缩写,...

    Java的MyBatis框架中实现多表连接查询和查询结果分页

    MyBatis是一个流行的Java持久层框架,它允许开发者将SQL语句直接集成到XML或注解形式的映射文件中,极大地简化了数据库操作。在处理多表连接查询和查询结果分页时,MyBatis提供了强大的动态SQL功能,使得这些复杂的...

    Spring+Hibernate一对多关联映射---部门与员工表的级联添加

    本教程将深入探讨Spring和Hibernate结合使用时的一对多关联映射,特别是部门与员工表的级联添加。 在数据库设计中,一对多关联是一个常见的关系类型,例如一个部门可以有多名员工,但每个员工只能属于一个部门。在...

    企业招聘网站 ------java

    - **ER模型**:用于设计数据库的实体关系图,明确各表之间的关联。 - **SQL语句**:创建、查询、更新和删除数据,如`SELECT`, `INSERT`, `UPDATE`, `DELETE`。 - **索引优化**:创建合适的索引来提升查询速度。 ...

    成绩管理系统---JAVA实现

    学生表存储学生的基本信息,课程表存储课程的详细信息,成绩表则用于关联学生和课程,记录每个学生的每门课程得分。这些表之间通过外键约束建立关联,确保数据的一致性和完整性。 接下来,系统的功能模块设计包括但...

    Spring boot2基于Mybatis实现多表关联查询

    Spring Boot 2 基于 MyBatis 实现多表关联查询 Spring Boot 2 是目前非常流行的 Java 框架,它提供了许多强大的功能,例如自动配置、 starters 机制等。MyBatis 是一个流行的持久层框架,提供了强大的数据库交互...

    精通hibernate3.0--java数据库持久层开发实践(付京周)2

    根据提供的文件信息,“精通Hibernate3.0—Java数据库持久层开发实践(付京周)”这一书籍主要聚焦于使用Hibernate框架进行Java应用的数据库持久层开发。本书旨在帮助读者深入理解并掌握Hibernate的核心概念和技术...

    Spring+Hibernate 多对多关联映射---教师与学生表的级联增删改查

    本篇将深入探讨如何在Spring和Hibernate中实现多对多关联映射,并通过一个具体的教师与学生表的级联增删改查实例来阐述这一过程。 首先,多对多关联是数据库设计中的一种关系类型,表示一个实体可以与多个其他实体...

    多对多的关联映射--基于SSH开发

    在关系数据库中,两个表之间的多对多关系意味着每个表中的记录都可以与另一个表中的多个记录相关联。例如,学生可以选修多门课程,而课程也可以被多个学生选修,这就是典型的多对多关系。 在Hibernate框架中,多对...

    Test多表联合增删改查,struts两个JAVABEAN

    在多表联合操作中,Hibernate通过HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)支持复杂的SQL查询,包括JOIN操作。我们可以定义一对多、多对一或多对多的关系映射,简化多表操作。 ...

    Java-Java网络编程教程

    Java网络编程是Java开发中的重要组成部分,它允许Java应用程序通过网络进行通信,实现数据的传输。本教程将针对Java的网络编程进行详细讲解,旨在帮助Java学习者掌握这一核心技术。 一、TCP/IP基础 在Java网络编程...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    4. **多对多关联**:两个实体之间存在多对多的关系,通常需要通过关联表来实现。 #### 结论 Hibernate通过提供强大的对象关系映射功能,极大地简化了Java应用与数据库的交互过程,使得开发人员能够更加专注于业务...

    Java敏捷持久层-ROR-ActiveRecord持久层框架的Java实现

    3. 关联映射:支持一对多、一对一、多对多等复杂的数据库关联关系,通过定义对象之间的关联,可以方便地进行关联查询。 4. 动态查询:允许开发者使用类似Java的方法调用来构建复杂的查询条件,无需拼接SQL字符串。 5...

    (超赞)JAVA精华之--深入JAVA API

    **1.7 Java 5.0多线程编程** - **高级主题** - 如并发工具类、锁机制等。 **1.8 Java Socket编程** - **网络编程基础** - 使用 `Socket` 和 `ServerSocket` 类实现客户端和服务端通信。 **1.9 Java的内存泄漏*...

    SpringBoot中mybatis表关联映射关系(一对多嵌套:结果方式)

    SpringBoot 中 MyBatis 表关联映射关系(一对多嵌套:结果方式) 在 SpringBoot 中,MyBatis 是一个非常流行的持久层框架,它提供了强大的持久化功能,能够将 Java 对象与数据库表进行映射。在实际开发中,我们经常...

    大作业-毕设-JAVA-SSM-驾校报名小程序.zip

    3. **MyBatis**:是一个持久层框架,它允许开发者编写SQL语句并与Java对象进行映射,通过简单的XML或注解配置,将接口方法与SQL语句关联,使得数据库操作变得更加简单。 在“驾校报名小程序”中,这些框架可能会被...

    Java课程设计--JavaSwing+Mybatis带GUI界面学生管理系统(含数据库).zip

    在整合JavaSwing与Mybatis时,通常会有一个中间层,即业务逻辑层(Business Logic Layer),用于处理用户从GUI传递的请求,调用Mybatis的接口进行数据库操作,并将结果返回给GUI展示。这种三层架构(GUI、Business ...

    myBatis 基础测试 多表关联 集合测试myelipse项目

    在这个名为"myBatis 基础测试 多表关联 集合测试myelipse项目"的资源中,我们可以深入学习MyBatis的基本使用、多表关联查询以及集合处理。 1. **MyBatis基本概念** - MyBatis 是一个基于Java的持久层框架,主要...

Global site tag (gtag.js) - Google Analytics