java中的接口是类吗
241
2022-11-06
MyBatis中的表关联查询实现示例
Mybatis中的一对多对象关联查询查询
模拟情景,商品与商品详情:一件商品可以对应多个商品详情信息,即从商品➡商品详情方向看,属于一对多。 在一对多关系中,需要在属于一的一方的实体类中添加多的一方的集合,一般为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
}
在"一方"实体类对应的xml 文件中,添加配置信息
column="goods_id">
column="goods_id">
select * from t_goods limit 0 , 1
在“多方”对应的xml文件中添加
resultTypwFTmgDTMPe="com.imooc.mybatis.entity.GoodsDetail">
select * from t_goods_detail where goods_id = #{value}
至此,关于商品到商品详情的一对多查询配置就完成了。
测试
//OneToMany
@Test
public void selectOneToMany(){
SqlSession sqlSession = null ;
try{
sqlSession = MybatisUtils.openSession() ;
List
for (Goods g : list){
//输出商品和该商品的详情信息数量
System.out.println(g.getTitle() + ":" + g.getGoodsDetailLists().size());
}
}catch (Exception e){
e.printStackTrace();
wFTmgDTMP }finally {
MybatisUtils.closeSession(sqlSession);
}
}
Mybatis多对一对象关联查询
在上诉情景中,商品详情➡商品即为多对一的关系
在多对一关系中,需要在多的一方的实体类中添加一的一方的实体对象
public class GoodsDetail {
private Integer gdId ;
private Integer goodsId ;
private String gdPicUrl ;
private Integer gdOrder ;
//多对一:在多的一方添加一的一方的实体
private Goods goods ;
}
在多的一方xml文件中添加
http://
select * from t_goods_detail limit 0 , 1
测试
/**
* 多对一对象关联映射
* */
@Test
public void selectManyToOne(){
SqlSession sqlSession = null ;
try{
sqlSession = MybatisUtils.openSession() ;
List
for (GoodsDetail gd : list){
System.out.println(gd.getGdPicUrl() + ":" + gd.getGoods().getTitle());
}
}catch (Exception e){
e.printStackTrace();
}finally {
MybatisUtils.closeSession(sqlSession);
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~