MyBatis Plus 將查詢結果封裝到指定實體的方法步驟
更新時間:2020年09月25日 14:28:46 作者:魔有追求
這篇文章主要介紹了MyBatis Plus 將查詢結果封裝到指定實體的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
思路
自定義方法,使用Wrapper,自定義映射結果集
Mapper接口
package com.mozq.boot.mpsand01.dao; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.mozq.boot.mpsand01.pojo.OrderInfo; import com.mozq.boot.mpsand01.vo.OrderVO; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface OrderInfoDao extends BaseMapper<OrderInfo> { @Select("select * from order_info ${ew.customSqlSegment}") /* 只指定2個,其他列能自動匹配的,也會被映射。 @Results({ @Result(id = true, column = "ORDER_ID", property = "orderId", jdbcType = JdbcType.VARCHAR), @Result(column = "USER_ID", property = "userId", jdbcType = JdbcType.INTEGER) }) */ List<OrderVO> findByCondition(@Param(Constants.WRAPPER)Wrapper wrapper); List<OrderVO> selectOrderVOList(@Param(Constants.WRAPPER)Wrapper wrapper); }
Mapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mozq.boot.mpsand01.dao.OrderInfoDao"> <resultMap id="BaseResultMapVO" type="com.mozq.boot.mpsand01.vo.OrderVO"> <id column="ORDER_ID" property="orderId" jdbcType="VARCHAR" /> <result column="USER_ID" property="userId" jdbcType="INTEGER" /> <result column="COMPANY_ID" property="companyId" jdbcType="INTEGER" /> <result column="CUSTOMER_ID" property="customerId" jdbcType="INTEGER" /> <result column="CUSTOMER_NAME" property="customerName" jdbcType="VARCHAR" /> <result column="MOBILE_PHONE" property="mobilePhone" jdbcType="VARCHAR" /> <result column="ACCOUNT_ID" property="accountId" jdbcType="VARCHAR" /> <result column="PRODUCT_ID" property="productId" jdbcType="INTEGER" /> <result column="PRODUCT_NAME" property="productName" jdbcType="VARCHAR" /> <result column="ORDER_TYPE" property="orderType" jdbcType="INTEGER" /> <result column="QUANTITY" property="quantity" jdbcType="DECIMAL" /> <result column="LICENSE_PLATE_NUMBER" property="licensePlateNumber" jdbcType="VARCHAR" /> <result column="PRICE" property="price" jdbcType="DECIMAL" /> <result column="TOTAL_MONEY" property="totalMoney" jdbcType="DECIMAL" /> <result column="PAY_QUANTITY" property="payQuantity" jdbcType="DECIMAL" /> <result column="PAY_MONEY" property="payMoney" jdbcType="DECIMAL" /> <result column="THE_WEIGHT" property="theWeight" jdbcType="INTEGER" /> <result column="DELIVERY_ADDRESS" property="deliveryAddress" jdbcType="VARCHAR" /> <result column="RECEIVE_ADDRESS" property="receiveAddress" jdbcType="VARCHAR" /> <result column="ORDER_STATUS" property="orderStatus" jdbcType="INTEGER" /> <result column="REMARK" property="remark" jdbcType="VARCHAR" /> <result column="PICKUP_TIME" property="pickupTime" jdbcType="TIMESTAMP" /> <result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP" /> <result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP" /> </resultMap> <sql id="Base_Column_List"> ORDER_ID, USER_ID, COMPANY_ID, CUSTOMER_ID, CUSTOMER_NAME, MOBILE_PHONE, ACCOUNT_ID, PRODUCT_ID, PRODUCT_NAME, ORDER_TYPE, QUANTITY, LICENSE_PLATE_NUMBER, PRICE, TOTAL_MONEY, PAY_QUANTITY, PAY_MONEY, THE_WEIGHT, DELIVERY_ADDRESS, RECEIVE_ADDRESS, ORDER_STATUS, REMARK, PICKUP_TIME, CREATE_TIME, UPDATE_TIME </sql> <select id="selectOrderVOList" resultMap="BaseResultMapVO"> select <include refid="Base_Column_List"></include> from order_info ${ew.customSqlSegment} </select> </mapper>
測試類
@Test public void selectOrderVOList(){ List<OrderVO> orderVOList = orderInfoDao.selectOrderVOList( Wrappers.<OrderInfo>lambdaQuery() .eq(OrderInfo::getUserId, 123456) .eq(OrderInfo::getCompanyId, 1) ); System.out.println(orderVOList.size()); List<OrderVO> byCondition = orderInfoDao.findByCondition( Wrappers.<OrderInfo>lambdaQuery() .eq(OrderInfo::getUserId, 123456) .eq(OrderInfo::getCompanyId, 1) ); System.out.println(byCondition.size()); List<OrderInfo> orderInfoList = orderInfoDao.selectList( Wrappers.<OrderInfo>lambdaQuery() .eq(OrderInfo::getUserId, 123456) .eq(OrderInfo::getCompanyId, 1) ); System.out.println(orderInfoList.size()); }
到此這篇關于MyBatis Plus 將查詢結果封裝到指定實體的方法步驟的文章就介紹到這了,更多相關MyBatis Plus查詢結果封裝到指定實體內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot+Tess4j實現(xiàn)牛的OCR識別工具的示例代碼
這篇文章主要介紹了SpringBoot+Tess4j實現(xiàn)牛的OCR識別工具的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01淺談java中String StringBuffer StringBuilder的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中String StringBuffer StringBuilder的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06