重庆技术网站建设网站内部链接优化方法
正文前小提示:使用的是Mysql数据库,以下以具体场景进行解释说明!
1.具体需求说明:需要查询A模块下不同类别(某种标准)对应的各自记录数集合。
2.以下为xml文件的针对此业务的sql语句:
<!-- 根据A模块Id(a_id)查询该模块某种类型(m_type)各自对应的总数 -->
<!-- ATypeAmountVo为重新定义的VO名,里面包含的属性为该SQL返回的两个属性 -->
<!-- 根据A模块id查询不同类别(某种标准)对应的各自记录数集合-->
<select id="selectCountGroupByAType" parameterType="java.lang.Integer" resultType="com.*.*.ATypeAmountVo">SELECT b.m_type, count(*) as amount from a_table as b where b.a_id = #{aId} GROUP BY b.m_type
</select>
3.以下为新创建的ATypeAmountVo:
public class ATypeAmountVo {//A模块下不同类型private Integer mType;//不同类型对应的数量private Integer amount;public Integer getMType() {return mType;}public void setMType(Integer mType) {this.mType= mType;}public Integer getAmount() {return amount;}public void setAmount(Integer amount) {this.amount = amount;}}
4.AMapper.java 和AService.java 中方法一样,如下代码:
/*** 根据A模块aId查询该模块各种类型各自对应的总数的集合 * @return*/
List<ATypeAmountVo> selectCountGroupByAType(@Param("aId") Integer aId);
5.AController.java调取的方法如下:
/*** 根据A模块Id查询该模块下各种类型的对应的总数集合* @return*/
@ApiOperation(value = "根据A模块Id查询该模块下各种类型对应的总数集合",notes = "根据A模块Id查询该模块下各种类型对应的总数集合")
@RequestMapping(value = "/selectCountGroupByAType", method = RequestMethod.POST)
@ApiImplicitParam(name = "aId", value = "A模块Id",dataType = "Integer")
public RestResponse<List<ATypeAmountVo>> selectCountGroupByAType(@RequestBody Integer aId){List<ATypeAmountVo> aTypeList = aService.selectCountGroupByAType(aId);return RestResponse.ok(aTypeList);
}
6.VO模式适用于以上类似情况或者联表查询需返回多个表的字段的场景(不是返回单单某表的字段),请朋友们视具体情况而定!