美文网首页
mybatis中容易混淆的概念

mybatis中容易混淆的概念

作者: mkitclear | 来源:发表于2016-10-04 21:11 被阅读35次
    1. resultMapresultType
      当配置 resultType 时,就不需要配置 resultMap ,看似 resultType 方便,但是会被受限制,没有 resultMap 开放多
      • 相同点:都是表示查询结果集的类型。
      • 不同点: resultMap 需要手动配置映射关系,而 resultType 是直接指定java类型或者自定义的实体类型,查询结果集的列名必须和实体属性名称一致(实体类:名称大小写可以忽略; java 类型,如 Map 集合的 key 大小写要一致,尽量都大小写规范,如果不放心可以 select ID id,... )。
        优缺点:
      • resultType 结果集列名要与java属性名一样,但是 resultMap 不受限制,因为 resultMapcolumn 来规定。
      • 由于 SQL 类型与 Java 中类型部分不匹配, resultMap 可以通过 typeHandler="" 来匹配(如:SQL中的0和1来表示 java 中的 falsetrueDate 类型的转换),但是 resultType 无能为力。
    2. parameterMappatameterType
      表示传入参数的对应关系,前者不推荐使用,只是 mybatis 为了适应以前的版本。
      提示:看到 Map 字眼的想到映射关系,看到 Type 字眼的想到类型。
    3. #{}${}
      相同点:都是用来作为占位符。
      不同点: #{} 在预编译的时候会被替换为?,而 ${} 在预编译的时候直接将变量的值替换进去,而且没有引号(所以还要加上“ ${...} ”),故一般都是用前者,个别情况会使用后者:如需进行排序,且排序字段为参数时可以使用 ${} order by 后面不喜欢被预编译,所以使用 ${} 更为恰当)。
    4. #{}ognl
      #{} 中如果是基本类型,其中的名称可以随便写(不推荐),但一般都用 _parameter ,因为值唯一,而 ognl 中必须写成 _parameter 的方式

    相关文章

      网友评论

          本文标题:mybatis中容易混淆的概念

          本文链接:https://www.haomeiwen.com/subject/bmksyttx.html