MyBatis Plus 將查詢結(jié)果封裝到指定實(shí)體的方法步驟
思路
自定義方法,使用Wrapper,自定義映射結(jié)果集
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;@Mapperpublic interface OrderInfoDao extends BaseMapper<OrderInfo> { @Select('select * from order_info ${ew.customSqlSegment}') /* 只指定2個(gè),其他列能自動(dòng)匹配的,也會(huì)被映射。 @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 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 resultMap='BaseResultMapVO'> select <include refid='Base_Column_List'></include> from order_info ${ew.customSqlSegment} </select></mapper>
測(cè)試類
@Testpublic 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());}
到此這篇關(guān)于MyBatis Plus 將查詢結(jié)果封裝到指定實(shí)體的方法步驟的文章就介紹到這了,更多相關(guān)MyBatis Plus查詢結(jié)果封裝到指定實(shí)體內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Oracle的PDB數(shù)據(jù)庫(kù)創(chuàng)建DIRECTORY時(shí)遇到ORA-65254問題及解決方法2. Sqlserver之死鎖查詢以及批量解鎖的實(shí)現(xiàn)方法3. SQL Server自動(dòng)備份無(wú)法刪除過期的備份文件4. SQLite3數(shù)據(jù)庫(kù)的介紹和使用教程(面向業(yè)務(wù)編程-數(shù)據(jù)庫(kù))5. Windows10系統(tǒng)中Oracle完全卸載正確步驟6. 總結(jié)幾種MySQL中常見的排名問題7. mysql查詢的控制語(yǔ)句圖文詳解8. MySql 存儲(chǔ)引擎和索引相關(guān)知識(shí)總結(jié)9. 詳解MySQL中表的內(nèi)外連接10. 磁盤空間滿了之后MySQL會(huì)怎樣
