MyBatis框架中,SQl语句的返回值问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis框架中,SQl语句的返回值问题相关的知识,希望对你有一定的参考价值。

我想取一个表中的ID字段和时间字段,这两个字段都有很多记录。那么我用来存放取得的值效率最好呢?有没有这样一种实现方式,让取得的id作为map的key,时间作为map的value。这样就不会被覆盖了。

可以直接返回对象 你配置一下别名 例 <typeAlias class="***" alias="myObject" />
然后你在 mybatis的sql文件中 更改查询的返回值类型 也就是resultType=“myObject” 就可以了,
例:
<select id="myselect" resultType="myObject">
select * from myObject_table
</select>
如果是list Mybatis会自动处理的。
参考技术A 直接返回一个map就行了,map中的key就是查询出的字段名称追问

可是我查询的是两条记录,一条ID,一条时间,我想更改某个条件下的时间,那就要根据map的key,value键值对来做嘛,而且因为id是唯一的,所以用map就不会被覆盖。所以我想能不能再写SQl的时候就直接做好map键值对。还有您说直接用map返回,可是map的key不是不能相同的么?

追答

哦,刚刚说错了,返回一个list 里面是放的是一个一个的map,你查出来的结果集是什么样的?我还是没看明白你想弄一个什么东西。。

本回答被提问者和网友采纳

mybatis 配置sql 当返回值为int的时候,resulttype怎么写

resultType="java.lang.Integer"

Integer如果一条都没有是会返回null的,所以不会报错,而用int的话没有会返回0

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

扩展资料:

注意事项

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

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

参考技术A 一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。 在MyBatis进行查询映射时,...本回答被提问者采纳 参考技术B 一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。 在MyBatis进行查询映射时,... 参考技术C resultType="java.lang.Integer"

以上是关于MyBatis框架中,SQl语句的返回值问题的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis实现

MyBatis源码分析-SQL语句执行的完整流程

Mybatis 框架学习指南 ❤️

MyBatis框架中的条件查询!关键字exists用法的详细解析

开发问题第一章

Mybatis框架—简单的增删改查