Mybatis源码分析(四) - select查询,resultmap详解

select元素

自动映射

      前提:SQL列名和JavaBean的属性是一致的;
      自动映射等级autoMappingBehavior设置为PARTIAL,需要谨慎使用FULL;
      使用resultType;
      如果列名和JavaBean不一致,但列名符合单词下划线分割,Java是驼峰命名法,
      则mapUnderscoreToCamelCase可设置为true;

传递多个查询入参

     使用map传递参数;可读性差,导致可维护性和可扩展性差,杜绝使用;
     使用注解传递参数;直观明了,当参数较少一般小于5个的时候,建议使用;

     接口定义方式:List<TUser> selectByEmailAndSex2(@Param("email")String email,@Param("sex")Byte sex);
     使用Java Bean的方式传递参数;当参数大于5个的时候,建议使用;

resultMap元素 属性

 resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出
 来,在对复杂语句进行联合映射的时候,它很可能可以代替数千行的同等功能的代码。
 ResultMap 的设计思想是,简单的语句不需要明确的结果映射,而复杂一点的语句只需要描述它们的关系就行了。

resultMap元素 子元素

 

id & result

 id 和 result 都将一个列的值映射到一个简单数据类型(字符串,整型,双精度浮点数,日期等)的属性或字段
 两者之间的唯一不同是, id 表示的结果将是对象的标识属性,这会在比较对象实例时用到。 这样可以
 提高整体的性能,尤其是缓存和嵌套结果映射(也就是联合映射)的时候

constructor

一个pojo不存在没有参数的构造方法,就需要使用constructor;
为了通过名称来引用构造方法参数,你可以添加 @Param 注解,指定参数名称的前提下,以任意顺序编写
arg 元素

<constructor>
     <idArg column="id" javaType="int" />
     <arg column="user_name" javaType="String" />
</constructor>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值