概述
Mybatsi:关联查询
需求:
例如查询商品信息关联查询商品类型信息,
使用resultMap:
一、改造pojo类
在Goods类中加入GoodsType属性,GoodsType属性中用于存储关联查询的商品类型信息,因为商品关联查询商品类型是一对一关系,所以这里使用单个GoodsType对象存储关联查询的商品类型信息。
pojo类: goods
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Goods {
private Integer id;
private String name;
private Date pubdate;
private String picture;
private BigDecimal price;
private Integer star;
private String intro;
private Integer typeid;
private GoodsType goodsType;
}
goodsType:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GoodsType {
private Integer id;
private String name;
private Integer level;
private Integer parent;
}
映射文件代码:
<mapper namespace="com.vince.dao.GoodsDao">
<resultMap id="goodsAndType" type="Goods">
<!--主键id-->
<id property="id" column="id"></id>
<!--其他列-->
<result property="name" column="name"></result>
<result property="pubdate" column="pubdate"></result>
<result property="picture" column="picture"></result>
<result property="price" column="price"></result>
<result property="star" column="star"></result>
<result property="intro" column="intro"></result>
<result property="typeid" column="typeid"></result>
<!--外键对象-->
<association property="goodsType" javaType="GoodsType">
<!--主键id-->
<id property="id" column="typeid"></id>
<!--其他列-->
<result property="name" column="goodsname"></result>
<result property="level" column="level"></result>
</association>
</resultMap>
<select id="findAll" resultMap="goodsAndType">
SELECT g.*,t.`name` as goodsname,t.level FROM tb_goods g INNER JOIN tb_goods_type t ON g.`typeid`=t.`id`
</select>
测试:
@Test
public void testGoods(){
ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
GoodsDao goodsDao = (GoodsDao) context.getBean("goodsDao");
List<Goods> all = goodsDao.findAll();
for (Goods goods : all) {
System.out.println(goods.toString());
}
}
运行结果:
Goods(id=1, name=java模式, pubdate=Tue Sep 12 00:00:00 CST 2017, picture=878bba858c-79da-4cdc-a974- eb4526d7408b_696673-1_w.jpg, price=1.00, star=5, intro=第一, typeid=1, goodsType=GoodsType(id=1, name=计算机, level=1, parent=null))
关联查询出商品类型信息。
最后
以上就是贪玩烤鸡为你收集整理的Java- Mybatis关联查询 (一对一)Mybatsi:关联查询的全部内容,希望文章能够帮你解决Java- Mybatis关联查询 (一对一)Mybatsi:关联查询所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复