首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

ibatis 之 复杂部类属性(即自定义类型的属性)

2012-09-10 
ibatis 之 复杂类型属性(即自定义类型的属性)复杂类型用以表示在数据库中相互关系为一对一,一对多的数据。?

ibatis 之 复杂类型属性(即自定义类型的属性)

复杂类型用以表示在数据库中相互关系为一对一,一对多的数据。

?

映射文件:

?

?DAO层:

?ibatis 之 复杂部类属性(即自定义类型的属性)ibatis 之 复杂部类属性(即自定义类型的属性)

?

类:

?ibatis 之 复杂部类属性(即自定义类型的属性)ibatis 之 复杂部类属性(即自定义类型的属性)
public class Classes {private Integer id;private String name;private List<Student> studentList;private List<Teacher> teacherList;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<Student> getStudentList() {return studentList;}public void setStudentList(List<Student> studentList) {this.studentList = studentList;}public List<Teacher> getTeacherList() {return teacherList;}public void setTeacherList(List<Teacher> teacherList) {this.teacherList = teacherList;}}public class Student {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}public class Teacher {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

?

上面的方法可以一次性查询出所有的记录,ibatis会自动分组,这个可以解决数据量比较小的情况。

但是如果多的一端比如班级的学生数据量比较大,需要分页的话,就不行了。

如果一的一端数据量比较大,比如班级比较多,需要分页的话,我的解决方法是:首先只查询出一页数据的ids,然后再通过ids,

用in的方法查询出数据,很多人说in的性能差,但总比n+1的性能要好很多吧。

?

?

热点排行