mybatis---resultmap和resulttype

在使用mybatis时遇到的问题。分享给大家

R

ResultMapWithBLOB是我自定义的一个resultmap。代码如下

<resultMap id="ResultMapWithBLOB" type="model.Blog" >
    <constructor >
      <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
      <arg column="title" jdbcType="VARCHAR" javaType="java.lang.String" />
      <arg column="describle" jdbcType="VARCHAR" javaType="java.lang.String" />
      <arg column="writer" jdbcType="VARCHAR" javaType="java.lang.String" />
      <arg column="context" jdbcType="LONGVARCHAR" javaType="java.lang.String" />
    </constructor>
  </resultMap>
  <sql id="Base_Column_List" >
    id, title, describle, writer
  </sql>
  <sql id="Blob_Column_List" >
    context
  </sql>
  <select id="selectByPrimaryKey" resultType="ResultMapWithBLOB" parameterType="java.lang.String" >
    select 
    <include refid="Base_Column_List" />
    ,
    <include refid="Blob_Column_List" />
    from blog
    where writer = #{writer,jdbcType=VARCHAR}
  </select>

再把单元测试的代码贴出来


   public void showpersonblog()throws Exception{
            List<Blog> b=blogService.showAllBlogPerson("1");
        for (Blog c:b
             ) {
            System.out.println(c.getId());
            System.out.println(c.getContext());
            System.out.println(c.getDescrible());
            System.out.println(c.getTitle());
            System.out.println(c.getWriter());
        }

    }

问题原因:MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接
表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。

解决方法:将resulttype改为resultmap


  <select id="selectByPrimaryKey" resultMap="ResultMapWithBLOB" parameterType="java.lang.String" >
    select 
    <include refid="Base_Column_List" />
    ,
    <include refid="Blob_Column_List" />
    from blog
    where writer = #{writer,jdbcType=VARCHAR}
  </select>


 
 
 
没有虚过一天,真好
原文地址:https://www.cnblogs.com/dailinfu/p/6339951.html