一对多的处理| 学习笔记

开发者学堂课程【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}


 

上一篇:执行计划中的COLLECTION ITERATOR PICKLER FETCH导致的性能问题


下一篇:版本控制软件爆出远程命令执行漏洞 涉及Git、SVN、Mercurial、CVS版本控制