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>

 
 
 
时间: 2024-10-08 20:41:29

mybatis---resultmap和resulttype的相关文章

Mybatis ResultMap 和 resultType 区别

一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在.在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resu

Mybatis中的resultType和resultMap 区别

Mybatis中的resultType和resultMap 是mybatis 中返回类型一定用到的,但不会同时出现.mybatis返回类型肯定是map结构,然后根据返回类型是map还是对象类型,再转换. 在给对象设置属性的时候,两个方法肯定会调用. private Object getRowValue(ResultSetWrapper rsw, ResultMap resultMap) throws SQLException { final ResultLoaderMap lazyLoader

Mybatis中的resultType和resultMap

一.概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在. 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值. ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给r

MyBatis中关于resultType和resultMap的区别

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在. 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值.

mybatis中resultMap与resultType的使用说明

一.mapper文件内容如下: <mapper namespace="com.miapsoft.dao.UserDao"> <resultMap type="User" id="UserMapper"> <result property="id" column="ID" /> <result property="name" column=&quo

Mybatis 入门之resultMap与resultType讲解实例

resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 id:resultMap的唯一标识 column:库表的字段名 property:实体类里的属性名 配置映射文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-

mybatis 中的resultMap 和resultType

Mapper.xml文件里的select语句里的返回类型 可以为resultMap和resultType 两者的区别: resultType 返回单个pojo对象要保证sql查询出来的结果集为单条,内部使用session.selectOne方法调用,mapper接口使用pojo对象作为方法返回值. 返回pojo列表表示查询出来的结果集可能为多条,内部使用session.selectList方法,mapper接口使用List<pojo>对象作为方法返回值. 数据库的字段名必须和实体类的属性名称一

hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

映射配置文件  好947  <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  <resultMap type="person" id="BaseResultMap">   <!-- column:库表的字段名 property:实体类里的属性名 -->   <id column="person_id" property="personId" /&g

mybatis resultmap标签type属性什么意思

mybatis resultmap标签type属性什么意思? :就表示被转换的对象啊,被转换成object的类型啊 <resultMap id="BaseResultMap" type="BaseObject"> <id property="id" column="id" /> <result property="appId" column="appid"

MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别

MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,将数据库中列数据复制到对象的相应属性上,可以用于复制查询,两者不能同时用. 1.resultType 返回单个实例 <select id="selectUser" parameterType="int" resu