今天我们做一个多表查询。
1首先准备两张表,一张是学生信息表,一张是课程表。建表语句:
CREATE TABLE `test`.`classinfo` (
`classname` varchar(20) NOT NULL DEFAULT '',
`classid` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`classid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULTCHARSET=gbk;
CREATE TABLE `test`.`student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`classid` int(11) DEFAULT NULL,
`name` varchar(45) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULTCHARSET=gbk;
这是量表的表表结构。我们知道这两张表具有关联关系。他们具有相同的classid。
那么如何利用hibernate实现对2表的查询呢?
实现代码如下:
第一建两张表的映射类分别是:
packagecom.fish.domain;
public class Classinfo {
public String classname;
public int classid;
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public int getClassid() {
return classid;
}
public void setClassid(int classid) {
this.classid = classid;
}
}
第二个类:
packagecom.fish.domain;
public class Student {
public int id;
public int classid;
public String name ;
public Classinfo classinfo;//这里做一个和上面表的的关联。
publicClassinfo getClassinfo() {
return classinfo;
}
public void setClassinfo(Classinfo classinfo) {