开发者学堂课程【MyBatis持久层框架入门:一对多的处理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/21/detail/448
一对多的处理
内容介绍:
1. association、property、JavaType、cloumn、select
2. 一对多的处理
3. Collection 元素
4. 编写映射文件 teacher.mapper.xml 的两种方式
1、 association、property、JavaType、cloumn、select
association:关联属性;
property:属性名;
JavaType:属性的类型;
cloumn:关联属性在多的一方表中列名;
select:表示查询;
2、 一对多的处理
1. 数据库表的设计(不需要改变,与多对一一致)
2. 实体类
Ø
Student.java
public class Student {
private int id;
private String name;
public int getId(){
return id;
{
public void setId(int id) {
this.id=.id;
}
public String getName(){
return name;
{
public void setName (String name) {
this.name= name;
}
}
Ø
Teather.java
public class Teacher{
private int id;
private String name;
private List students;
public int getId(){
return id;
}
public void setId(int id) {
this.id=id;
}
public String getName(){
return name;
}
public void setName(String name)
this.name= name;
}
public List getStudents(){
return students;
}
public void setStudents (List students){
this.students = students;
}
}
3、 Collection元素
Collection 元素
(result property="subject"column="post_aubject"/>
collection 元素的作用差不多和 association 元素的作用一样。
事实上,它们非常相似,以至于再对相似点进行描述会显得冗余,因此我们只关注它们的不同点。
继续我们上面的例子,一个Blog只有一个Author。
但一个Blog有许多帖子(文章)。
在Blog类中,会像下面这样定义相应属性:
集合嵌套选择(Nested Select for Collection)
首先我们使用嵌套选择来加载Blog的文章。
SELECT* FROM BLOG WHERE ID = #{id]
4、编写映射文件teacher.mapper.xml的两种方式
第一种:
select s.id sid,s.name sname,s.tid stid,t.id tid,t.name tname from student s,teacher t where s.tid=t.id and t.id=#{id}
第二种:
select* from teacher where id=#{id}
column="id"
select="cn.sxt.entity.student.mapper.getStudentByTid"
Student mapper xml
select* from student where tid=#{id}