一 多表查询图例
二
多表查询简介
studCourse作为中间表,将多对多的关系简化成one-to-many和many-to-one 的关系,这个也是在表的设计中惯用的一种数据库设计模式。
三 多表查询介绍
在项目开发过程中,我们不可能只对一张表进行操作,一定有多张表联合查询,下面看看在hql中如何对多表查询:
比如:显示林可欣选择的所有课程名和成绩。
简单的:select s1.course.cname,s1.grade from Studcourse s1 where s1.student.sname='林可欣'
四 实例
package com.cakin.view;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import com.cakin.util.*;
import com.sina.domain.Course;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain2 {
/**
* @param args
*/
public static void main(String[] args) {
String hql="select s1.course.cname,s1.grade from Studcourse s1 where s1.student.sname=?";
String parameters[]={"林可欣"};
List<Object[]> list=HibernateUtil.executeQuery(hql, parameters);
for(Object[] s:list){
System.out.println(s[0].toString()+" "+s[1].toString());
}
}
}
五 测试结果
javaEE 99