首页 > 其他分享 >MyBatis的返回参数类型

MyBatis的返回参数类型

时间:2023-11-08 18:07:20浏览次数:29  
标签:返回 brand 对应 resultType 参数 jdbcType MyBatis id


MyBatis的返回参数类型分两种

1. 对应的分类为:

1.1.resultMap:

1.2.resultType:

2 .对应返回值类型:

2.1.resultMap:结果集

2.2.resultType:int,string ,long ,class


3. 注意点:

在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
     
3.1 当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时
候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
     
3.2 当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

4.案例

4.1:resultMap案例


 
 
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >  
    select   
<include refid="Base_Column_List" />  
    from common_car_make  
id = #{id,jdbcType=BIGINT}  
</select>


4.2 resultType--long案例


<select id="queryCarTypeByModelIdCount" resultType="java.lang.Long" parameterType="java.util.Map">  
        select count(*)  from common_car_type cm  
1=1  
<if test="carModelId != null">  
cm.car_model_id = #{carModelId,jdbcType=DECIMAL}  
</if>  
</select>


4.3 resultType--int案例


<select id="queryCategoryBrandCount" resultType="java.lang.Integer" parameterType="java.util.HashMap" >  
        select count(1)  
        from common_category_brand  
1=1  
<if test="categoryId != null" >  
category_id = #{categoryId,jdbcType=BIGINT}  
</if>  
<if test="brandId != null" >  
brand_id = #{brandId,jdbcType=BIGINT}  
</if>  
</select>


4.4 resultType--class案例:查询结果对应类中的属性值



 
 
<select id="selectCommonBrand" resultType="com.epeit.api.model.CommonBrandPo" parameterType="java.lang.Long" >  
        select  
        id, brand_name brandName, brand_type brandType, icon, delete_flag deleteFlag  
        from common_brand  
id = #{id,jdbcType=BIGINT}  
</select>


标签:返回,brand,对应,resultType,参数,jdbcType,MyBatis,id
From: https://blog.51cto.com/u_809530/8257085

相关文章

  • Mybatis多表关联映射
    Mybatis多表关联映射查询结果集ResultMapresultMap元素是MyBatis中最重要最强大的元素。它就是让你远离90%的需要从结果集中取出数据的JDBC代码的那个东西,而且在一些情形下允许你做一些JDBC不支持的事情。事实上,编写相似于对复杂语句联合映射这些等同的代码,也许可以......
  • mybatis insert 返回主键
    需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。方法1(推介使用):在mapper中指定keyProperty属性,示例如下:<insertid="insert"parameterType="com.cl.media.model.Advert" useGeneratedKeys="true"keyProperty=advertId"> insertintor_adv......
  • mybatis在xml文件中处理大于号小于号的方法
    第一种方法:用了转义字符把>和<替换掉,然后就没有问题了。SELECT*FROMtestWHERE1=1ANDstart_date <=CURRENT_DATEANDend_date>=CURRENT_DATE附:XML转义字符           <                     ......
  • C++中main(int argc, const char* argv[])的意义和命令参数的添加
    在C++程序中经常会看到main函数有两个输入参数,经常疑惑main不是C++入口吗,在调试的过程中有很少用到。最近查看一些工程时发现有些工程使用这两个参数,查资料得知这是命令,在没有UI但是又需要外部参数输入时极为方便。在VS中,该命令的设置在:项目"属性"->"调试"->"命令参数" ......
  • Mybatis if test 判断数字时需要注意
    mybatis做if判断注意mybatis做if判断注意:下面这种写法只适用于id类型为字符串.<iftest="id!=nullandid!=''">id=#{id}</if>如果id类型为int当id=0时这个判断不会传该值的。test="id!=nullandid!=''orid==0">......
  • mybatis 多个条件in查询
    1.UI如下,共有四个查询条件,每个查询可以多选,所以考虑用in查询 2.查询DTO类封装如下:@Data@ApiModel(value="整机下市明细信息查询对象")publicclassMachineOffMarketQueryDto{@ApiModelProperty(value="型号编码集合",required=true)@NotEmpty(message="型......
  • js返回未来或过去7天等时间合集(任意日期区间合集)
    /***时间前后向前推算时间集合*@param{string:before|after}timebd:获取时间往后推,还是往前推,*@param{boole}haveCurrentDay:包不包含当天时间,*@param{number}Days:计算几天的时间,*@param{string:"2023-11-02"}timing:指定不指定当天的日期*@return{array}......
  • @RequestBody接收Json参数 用自定义注解对Vo对象中Date类型日期格式校验
    @RequestBody接收Json参数|用自定义注解对Vo对象中Date类型日期格式校验问题描述昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题。要求输入的日期格式是:yyyy-MM-ddHH:mm:ss,Vo中使用的注解如下:@DateTimeFormat(pattern=”yyyy-MM-ddHH:mm:ss”)测试同事输入下面两种......
  • uniapp小程序页面跳回携带参数
    B返回A1.B跳回事件letpages=getCurrentPages();//当前页页⾯实例            letnowPage=pages[pages.length-1];//当前页⾯实例            letprevPage=pages[pages.length-2];//上一页面实例            //......
  • mybatisplus轻松完成一次模糊+分页查询
    之前一直用mybatis+pageinfo完成模糊+分页查询,还需要手写sql语句,之前一直没做尝试,今天试了试mybatisplus一个人完成模糊+分页,挺简单的有一个小插曲是,我的前端接受的data中,data.list变成了data.record,一开始没有查到数据,让我差点怀疑自己哪里写错了,在使用sout的检查中我发现servic......