mybatis <sql /> 配置中 返回值 resultType 与resultMap的区别

mybatis的objectMapper.xml中,

1) 若<sql /> 查询语句中配置的是resultType=“实体类/DTO” ,则从mybatis返回的键值对结果集(Map)会直接赋值给该DTO(根据set()/get()方法,因此该DTO属性名要与表字段名一致,若不一致,可再sql查询语句中用as 更换查出来表字段名)中相映射的属性值,而与该mappper.xml文件配置<mapper/>里的<resultMap />无关。

2)若<sql /> 查询语句中配置的是resultMap=“<mapper/>中配置的<resultMap />”,则从mybatis返回的键值对结果集(Map)会根据该<resultMap />配置中(column-property)的相应属性赋值。

时间: 2024-10-20 21:46:17

mybatis <sql /> 配置中 返回值 resultType 与resultMap的区别的相关文章

Mybatis中输出映射resultType与resultMap的区别

(原文地址:http://blog.csdn.net/acmman/article/details/46509375) 1.resultType 使用resultType进行输出映射,只有查询出来的列名和pojo(实体bean)中的属性名一致,该列才可以映射成功. 如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象.只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象. 1.1输出pojo对象和pojo列表 不管是输出的pojo单个对象还是一个列表(list中

获取动态SQL查询语句返回值(sp_executesql)

在写存储过程时经常会遇到需要拼接SQL语句的情况,一般情况下仅仅是为了执行拼接后的语句使用exec(@sql)即可. 而今天的一个存储过程却需要获取动态SQL的查询结果. 需求描述:在某表中根据Id值查询Cost值(表名不确定但表结构确定,如下面的Product表) 如果不考虑获取返回值,我们这样写即可: declare @tableName varchar(50) declare @id varchar(10) declare @cost numeric(18,2) declare @sql

在Java 线程中返回值的用法

http://icgemu.iteye.com/blog/467848 在Java 线程中返回值的用法 博客分类: Java Javathread 有时在执行线程中需要在线程中返回一个值:常规中我们会用Runnable接口和Thread类设置一个变量:在run()中改变变量的值,再用一个get方法取得该值,但是run何时完成是未知的:我们需要一定的机制来保证. 在在Java se5有个Callable接口:我们可以用该接口来完成该功能: 代码如: Java代码   package com.thr

sql 表中列值转成字符串

DECLARE @STR VARCHAR(8000)SELECT @STR=ISNULL(@STR+',','')+weixinuser FROM (SELECT DISTINCT weixinuser FROM v_sysbinduser)AS TSELECT @STR declare @output varchar(8000)select @output = coalesce(@output + ',' , '') + weixinuser from v_sysbinduserprint @

mybatis sql语句中 like in() 长度为0或null的情况

mybatis sql语句中 like in() 长度为0或null的情况 比如: select * from A where colName LIKE IN <foreach collection="moCodeList" item="item" index="index" open="(" close=")" separator=","> #{item} </for

mybatis中resultType和resultMap的区别

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

MyBatis中关于resultType和resultMap的区别

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

mybatis和Dao映射的配置文件xml,中什么时候需要用resultType .什么时候用resultMap,及resultType和resultMap的区别

区别: 两者都可以用于映射文件中的<select>语句的返回值,但是两者在返回值上面是有区别的 如下面的两个例子: 使用resultType的 举个例子吧,例子以ibatis为例: 你有个User 对象, 拥有两个字段id,name. 1.你要获取id为123的name String name = (String) queryForObject("getUserNameByID", id); <select id="getUserNameByID"

Mybatis的mapper文件中#和$的区别 以及 resultType和resultMap的区别

一般#{}用于传递查询的参数,一般用于从dao层传递一个string或者其他的参数过来,mybatis对这个参数会进行加引号的操作,将参数转变为一个字符串. SELECT * FROM employee WHERE name="jack" 而$则不同,我们一般用于ORDER BY的后面. SELECT * FROM employee ORDER BY salary MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,