MyBatis中的表关联查询实现示例
Mybatis中的一对多对象关联查询查询
模拟情景,商品与商品详情:一件商品可以对应多个商品详情信息,即从商品➡商品详情方向看,属于一对多。在一对多关系中,需要在属于一的一方的实体类中添加多的一方的集合,一般为List<>类型
//(省去了get和set的方法)
publicclassGoods{
privateIntegergoodsId;
privateStringtitle;
privateStringsubTitle;
privateFloatoriginalCost;
privateFloatcurrentPrice;
privateFloatdiscount;
privateIntegerisFreeDelivery;
privateIntegercategoryId;
//在一对多关系中,在一方添加多的一方的集合
privateListgoodsDetailLists;
}
在"一方"实体类对应的xml文件中,添加配置信息
select*fromt_goodslimit0,1
在“多方”对应的xml文件中添加
select*fromt_goods_detailwheregoods_id=#{value}
至此,关于商品到商品详情的一对多查询配置就完成了。
测试
//OneToMany
@Test
publicvoidselectOneToMany(){
SqlSessionsqlSession=null;
try{
sqlSession=MybatisUtils.openSession();
Listlist=sqlSession.selectList("goods.selectOneToMany");
for(Goodsg:list){
//输出商品和该商品的详情信息数量
System.out.println(g.getTitle()+":"+g.getGoodsDetailLists().size());
}
}catch(Exceptione){
e.printStackTrace();
}finally{
MybatisUtils.closeSession(sqlSession);
}
}
Mybatis多对一对象关联查询
在上诉情景中,商品详情➡商品即为多对一的关系
在多对一关系中,需要在多的一方的实体类中添加一的一方的实体对象
publicclassGoodsDetail{
privateIntegergdId;
privateIntegergoodsId;
privateStringgdPicUrl;
privateIntegergdOrder;
//多对一:在多的一方添加一的一方的实体
privateGoodsgoods;
}
在多的一方xml文件中添加
select*fromt_goods_detaillimit0,1
测试
/**
*多对一对象关联映射
**/
@Test
publicvoidselectManyToOne(){
SqlSessionsqlSession=null;
try{
sqlSession=MybatisUtils.openSession();
Listlist=sqlSession.selectList("goodsDetail.selectManyToOne");
for(GoodsDetailgd:list){
System.out.println(gd.getGdPicUrl()+":"+gd.getGoods().getTitle());
}
}catch(Exceptione){
e.printStackTrace();
}finally{
MybatisUtils.closeSession(sqlSession);
}
}
到此这篇关于MyBatis中的表关联查询实现示例的文章就介绍到这了,更多相关MyBatis表关联查询内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。