Products
GG网络技术分享 2025-11-24 04:30 4
MyBatis Association就像是一个细小帮手,它Neng帮我们把数据库中的表关联起来就像两个优良朋友一起玩耍一样。

比如 我们有一个Person表和一个Passport表,Person表里有人的信息,Passport表里有护照的信息。Association就像是一个魔法,Neng告诉我们,个个人的护照信息是哪个人的。
在xml文件中定义resultMap,就像是在给Association画一张地图:
在Java对象中定义关联属性时需要添加cascade属性指定级联操作方式,就像告诉魔法细小帮手,要怎么帮忙:
public class Person {
private Long id;
private String name;
private Passport passport;
//getters/setters省略
}
public class Passport {
private Long id;
private String placeOfIssue;
private Person person;
//getters/setters省略
}
在xml文件中进行insert操作时则需要在插入操作中用关键字selectKey获取主键信息,就像告诉细小帮手,新鲜朋友的编号是几许多:
public class Person {
private Long id;
private String name;
private Passport passport;
//省略getter和setter方法
}
SELECT person.id as person_id,person.name as person_name,passport.id as passport_id,passport.place_of_issue as place_of_issue
FROM person JOIN passport
ON person.id=passport.person_id
WHERE person.id=#{id}
MyBatis中,用associationNenghen方便地实现级联操作,即在向数据库插入或geng新鲜数据时一边插入或geng新鲜关联对象。
用associationNeng在一个查询中,查询两个对象之间的关联关系并将其映射成一个完整的对象。
SELECT person_seq.nextval FROM dual
INSERT INTO person VALUES;
MyBatis的association形成了一个优秀的对象映射模型,Nenghen优良地进行关联查询。上述讲解了association的基本用、高大级应用,还涉及到懒加载和级联操作等内容。在实际应用中,我们也得结合具体情况,灵活运用association,搞优良代码的可读性和维护性。
懒加载的实现方式是在查询关联对象时 只查询其主键信息,并在第一次访问关联对象时再去查询完整的关联对象信息。
在MyBatis中,用association实现一对一或许多对一的对象关联映射需要用到以下步骤:
在MyBatis中,一个对象兴许涉及到优良几个关联映射,Neng用Nest Results来进行许多级关联映射。
比如 association可用于说说一对一或者许多对一的关联关系,其实现方式是在SQL语句中用JOIN关键字将两张关联表联合查询,从而完成查询后来啊与Java对象的关联映射,到头来得到一个完整的Java对象。
MyBatis支持用association来实现懒加载,即只有在需要访问关联对象时才进行查询。
MyBatis鼓励开发者采用关联查询的方式来处理对象之间的关系,association是MyBatis中的一个关键特性。
Demand feedback