天天看點

mybaties+maven+springboot整合将查詢結果映射到實體Bean時的注意事項

在Rank.xml中配置查詢語句

<select id="selectSumPrice"
        parameterType="com.iscas.manager.model.Rank"
        resultType="com.iscas.manager.entity.RankBean">
    SELECT
    s.code as storeId,
    s.name as storeName,
    SUM( p.money*p.num ) as totalMoney
    FROM
    price p
    LEFT JOIN store s on s.code = p.store_id
    WHERE
    1=1
    AND TO_DAYS(NOW()) - TO_DAYS(p.`create_time`) = 1
    <if test="keywords !=null and keywords !=''">
        AND s.name like '%${keywords}%'
    </if>
    GROUP BY s.code
    ORDER BY totalMoney DESC
</select>
           

建立實體RankBean.java接收查詢結果

public class RankBean {
    private String storeId;
    private String storeName;
    private String totalMoney;

    public String getStroeId() {
        return storeId;
    }

    public void setStroeId(String stroeId) {
        this.storeId = stroeId;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public String getTotalMoney() {
        return totalMoney;
    }

    public void setTotalMoney(String totalMoney) {
        this.totalMoney = totalMoney;
    }
}
           

将查詢結果封裝成json格式傳到前台頁面顯示

@RequestMapping(method = {RequestMethod.GET},value = "selectSumPrice")
    public void selectSumPrice(Rank e, HttpServletResponse response, HttpServletRequest request){
        ResultDataDto rdd = null;
        List<RankBean> edata = new ArrayList<>();
        try {
            List<RankBean> rankBeanList = rankService.selectSumPrice(e);
            edata = rankBeanList;
            PageInfo<RankBean> RankPageList = new PageInfo<>(rankBeanList);
            if (rankBeanList.size() != 0) {
                rdd = new ResultDataDto(ResultDataDto.CODE_SUCCESS, "查詢成功", RankPageList);
            } else {
                rdd = new ResultDataDto(ResultDataDto.CODE_SUCCESS, "查詢結果為空", null);
            }
        } catch (Exception ex){
            ex.printStackTrace();
            rdd = new ResultDataDto(ResultDataDto.CODE_ERROR_EXCEPTION, "查詢異常", null);
        }
        ReturnJsonResult.result(response, request, rdd);
    }
           

前台頁面效果

{
code: "200",
message: "查詢成功",
datas: {
pageNum: 1,
pageSize: 5,
size: 5,
startRow: 0,
endRow: 4,
total: 5,
pages: 1,
list: [
{
storeId: "18820",
storeName: "大娘當家(1店)",
totalMoney: "22850"
}
],
prePage: 0,
nextPage: 0,
isFirstPage: true,
isLastPage: true,
hasPreviousPage: false,
hasNextPage: false,
navigatePages: 8,
navigatepageNums: [
1
],
navigateFirstPage: 1,
navigateLastPage: 1
}
}
           
注意:Bean裡面定義的屬性名稱必須與sql查詢字段名稱一緻才能自動映射,否則前端将不能顯示查詢結果