温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Mybatis的多对一举例分析

发布时间:2021-11-16 15:14:56 来源:亿速云 阅读:100 作者:iii 栏目:大数据

本篇内容主要讲解“Mybatis的多对一举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis的多对一举例分析”吧!

        多对一

        (1)修改Product.java,为Product增加category属性

    private int id;
    private String name;
    private float price;
    private Category category;
    setter,getter,tostring

        (2)增加Product.xml

            提供Product.xml,通过listProduct配置关联查询的sql语句。

            然后通过resultMap ,进行字段和属性的对应。

            使用association 进行多对一关系关联,指定表字段名称与对象属性名称的一一对应关系

            注: Category的id 字段 和Product的id字段同名,Mybatis不知道谁是谁的,所以需要通过取别名cid,pid来区分。name字段同理。

    <mapper namespace="com.how2java.pojo">
        <resultMap type="Product" id="productBean">
            <id column="pid" property="id" />
            <result column="pname" property="name" />
            <result column="price" property="price" />
     
            <!-- 多对一的关系 -->
            <!-- property: 指的是属性名称, javaType:指的是属性的类型 -->
            <association property="category" javaType="Category">
                <id column="cid" property="id"/>
                <result column="cname" property="name"/>
            </association>
        </resultMap>
     
        <!-- 根据id查询Product, 关联将Orders查询出来 -->
        <select id="listProduct" resultMap="productBean">
            select c.*, p.*, c.id 'cid', p.id 'pid', c.name 'cname', 
            p.name 'pname' from category_ c left join product_ p on c.id = p.cid
        </select>   
    </mapper>

        (3)在mybatis-config.xml中增加对于Product.xml的映射

    <mappers>
        <mapper resource="com/how2java/pojo/Category.xml"/>
        <mapper resource="com/how2java/pojo/Product.xml"/>
    </mappers>

        (4)在TestManyToOne中

        List<Product> ps = session.selectList("listProduct");
        for (Product p : ps) {
            System.out.println(p+" 对应的分类是 \t "+ p.getCategory());
        }

到此,相信大家对“Mybatis的多对一举例分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI