Mybatis通过注解实现映射中的嵌套语句和嵌套结果

Posted 得不到的陪伴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis通过注解实现映射中的嵌套语句和嵌套结果相关的知识,希望对你有一定的参考价值。

案例描述:查看订单或购物车订单信息的同时查询出该订单中所有书籍的信息。

一、嵌套语句

@Select("select* from shopcart where shopcartid = #{id}")
@Results({ @Result(id = true, column = "shopcartid", property = "shopCartId"),
        @Result(column = "bookid", property = "bookId"), @Result(column = "amount", property = "amount"),
        @Result(column = "price", property = "price"), @Result(column = "status", property = "status"),
        @Result(column = "bookid", property = "book", one = @One(select = "com.yh.mybatis.mapper.BookMapper.findBookInfoById")) })
ShopCart findShopCartInfoById(int id);

 

 

二、嵌套结果

// 查找刚刚添加的订单信息
@Select("select orderinfo.*,book.bookname,book.imgurl,book.introduction,book.packstyle,book.sellerid,book.price bookprice from orderinfo,book where orderinfo.bookid = book.bookid and orderid like ‘${orderId}%‘")
@Results({ @Result(id = true, column = "identityid", property = "identityId"),
        @Result(column = "orderid", property = "orderId"), @Result(column = "buyerid", property = "buyerId"),
        @Result(column = "bookid", property = "bookId"), @Result(column = "amount", property = "amount"),
        @Result(column = "orderdate", property = "orderDate"), @Result(column = "express", property = "express"),
        @Result(column = "payment", property = "payment"), @Result(column = "addressid", property = "addressId"),
        @Result(column = "price", property = "price"), @Result(column = "message", property = "message"),
        @Result(column = "status", property = "status"),
        // 自定义类成员变量的属性
        @Result(column = "bookname", property = "book.bookName"),
        @Result(column = "sellerid", property = "book.sellerId"),
        @Result(column = "bookprice", property = "book.price"),
        @Result(column = "imgurl", property = "book.imgUrl"),
        @Result(column = "introduction", property = "book.introduction"),
        @Result(column = "packstyle", property = "book.packStyle") })
List<Order> findLastOrder(@Param("orderId") String orderId);

 

以上是关于Mybatis通过注解实现映射中的嵌套语句和嵌套结果的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis高级 注解开发

Mybatis -- MyBatis的注解实现复杂映射开发

Mybatis从入门到精通系列 15——嵌套查询与嵌套结果

mybatis 面试

MyBatis注解开发之一对多查询

MyBatis注解开发之一对一查询