模拟情景,商品与商品详情:一件商品可以对应多个商品详情信息,即从商品➡商品详情方向看,属于一对多。 在一对多关系中,需要在属于一的一方的实体类中添加多的一方的集合,一般为List<>类型
//(省去了get和set的方法)
public class Goods {
private Integer goodsId ;
private String title ;
private String subTitle ;
private Float originalCost ;
private Float currentPrice ;
private Float discount ;
private Integer isFreeDelivery ;
private Integer categoryId ;
//在一对多关系中,在一方添加多的一方的集合
private List goodsDetailLists ;
}
在"一方"实体类对应的xml 文件中,添加配置信息
在“多方”对应的xml文件中添加
至此,关于商品到商品详情的一对多查询配置就完成了。
//oneToMany
@Test
public void selectoneToMany(){
SqlSession sqlSession = null ;
try{
sqlSession = MybatisUtils.openSession() ;
List list = sqlSession.selectList("goods.selectOneToMany");
for (Goods g : list){
//输出商品和该商品的详情信息数量
System.out.println(g.getTitle() + ":" + g.getGoodsDetailLists().size());
}
}catch (Exception e){
e.printStackTrace();
}finally {
MybatisUtils.closeSession(sqlSession);
}
}
Mybatis多对一对象关联查询在上诉情景中,商品详情➡商品即为多对一的关系
在多对一关系中,需要在多的一方的实体类中添加一的一方的实体对象
public class GoodsDetail {
private Integer gdId ;
private Integer goodsId ;
private String gdPicUrl ;
private Integer gdOrder ;
//多对一:在多的一方添加一的一方的实体
private Goods goods ;
}
在多的一方xml文件中添加
测试
@Test
public void selectManyToOne(){
SqlSession sqlSession = null ;
try{
sqlSession = MybatisUtils.openSession() ;
List list = sqlSession.selectList("goodsDetail.selectManyToOne");
for (GoodsDetail gd : list){
System.out.println(gd.getGdPicUrl() + ":" + gd.getGoods().getTitle());
}
}catch (Exception e){
e.printStackTrace();
}finally {
MybatisUtils.closeSession(sqlSession);
}
}
到此这篇关于MyBatis中的表关联查询实现示例的文章就介绍到这了,更多相关MyBatis 表关联查询内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!



