public Person selectpersonAndCardLazyByPid(int pid);
(3)使用junit测试结果:
1.此处是只发出person信息的查询;
@Test
public void testselectpersonAndCardLazyByPid(){//lazy策略一对1
Person p=pm.selectpersonAndCardLazyByPid(1);
//System.out.println(p);
System.out.println(p.getPname()+",");
//System.out.println(p.getPname()+","+p.getCard().getCnum());
}
结果执行的查询语句:
2.当前台使用身份证号时才发出对card的查询
@Test
public void testselectpersonAndCardLazyByPid(){//lazy策略一对1
Person p=pm.selectpersonAndCardLazyByPid(1);
//System.out.println(p);
System.out.println(p.getPname()+",");
System.out.println(p.getPname()+","+p.getCard().getCnum());//当前台使用身份证号时才发出对card的查询
}
select * from adder where pid=#{value}
select * from card where cid=#{value}
SELECT * FROM person where pid=#{value}
(2)mapper接口定义方法:
1.此处是只发出person信息的查询;
@Test
public void testselectpersonAndCardAndAdderLazyByPid(){//lazy策略一对多
Person p=pm.selectpersonAndCardAndAdderLazyByPid(1);
System.out.println(p.getPname()+",");////此处是只发出person信息的查询
}
结果执行的查询语句:
2.此处是发出person信息和身份信息的查询;
@Test
public void testselectpersonAndCardAndAdderLazyByPid(){//lazy策略一对多
Person p=pm.selectpersonAndCardAndAdderLazyByPid(1);
System.out.println(p.getPname()+",");//此处是只发出person信息的查询;
System.out.println(p.getPname()+","+p.getCard().getCnum());//此处是发出person信息和身份信息的查询;
}
结果执行的查询语句:
3.此处发出person信息和身份信息,地址信息的查询;
@Test
public void testselectpersonAndCardAndAdderLazyByPid(){//lazy策略一对多
Person p=pm.selectpersonAndCardAndAdderLazyByPid(1);
System.out.println(p.getPname()+",");//此处是只发出person信息的查询;
System.out.println(p.getPname()+","+p.getCard().getCnum());//此处是发出person信息和身份信息的查询;
//System.out.println(p.getPname()+","+p.getCard().getCnum());
for (Adder adder : p.getAdder()) {////此处发出person信息和身份信息,地址信息的查询;
System.out.println(adder.getAshi());
}
}