我是靠谱客的博主 贪玩烤鸡,最近开发中收集的这篇文章主要介绍Java- Mybatis关联查询 (一对一)Mybatsi:关联查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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:关联查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部