`
BrotherQqiang
  • 浏览: 14750 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

MyBatis返回值为Map

 
阅读更多

在使用Spring+MyBatis时,从数据库读取多个字段,多条记录,设置ResultType=Map Mapper中代码如下:

<select id="getCaseDetail" parameterType="map" resultType="map">
		 select szlx, lasj
		 from ${tablename} 
		 where lasj>=#{beg} 
		 and substr(lasj,1,10)<![CDATA[<=]]>#{end}
		 order by lasj
	</select>

inter接口:

public List<Map<String, String>> getCaseDetail(Map<String, Object> map)

此时读取出来的数据因为是多条,所以要使用List接收,此时可能会误认为返回的第一个字段就是就是Map的key,第二个字段就是Map的key,Mybatis返回的Map是这样的一种格式:Map<字段名称,字段值> 一个Map<字段名,字段值>对象代表一行数据!

换用JSON表示Mybatis返回的List<Map<字段名, 字段值>>!
<span style="font-size:18px;">[
  {'szlx':'0001', 'lasj':'M0001','第三个字段':'key',....},
  {'szlx':'0002', 'lasj':'M0002'},
  {'szlx':'0003', 'lasj':'M0003'}
]</span>
这样就简单易懂多了,每一行表示一个list元素,然而这种形式一般不是我们想要的。

我们一般设置key为第一个字段的值,value为第二个字段的值,此时我们要将返回数据进行处理:

<span style="font-size:18px;">/**
	 * Map转换
	 * 
	 * @param list
	 *            当前list
	 * @param key
	 *            key名 字段1
	 * @param property
	 *            value名 字段2
	 * @return map
	 */
	public Map<Object, Object> transfor(List<Map<String, Object>> list,
			String key, String property) {
		Map<Object, Object> map1 = new HashMap<Object, Object>();
		for (Map<String, Object> map : list) {
			map1.put(map.get(key).toString(), map.get(property));
		}
		return map1;
	}</span>

此时经过转换map1为{'0001':'M0001'}

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    SpringBoot+Mybatis,返回Map的时候,将Map内的Key转换为驼峰的命名

    在将查询结果转换为Map时,我们可能会遇到需要将Map的Key由下划线形式转换为驼峰形式的需求。 要实现这个功能,我们可以创建一个工具类,专门处理这种转换。以下是一个简单的示例: ```java import java.util.Map;...

    springboot整合mybatis,接口返回值利用pagehelper实现分页

    在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis,并利用PageHelper插件实现接口返回值的分页功能。SpringBoot以其简洁、快速的特性,成为了现代Java开发中的首选框架,而MyBatis作为轻量级的持久层框架...

    mybatis中查询结果为空时不同返回类型对应返回值问题

    MyBatis 中查询结果为空时不同返回类型对应返回值问题 MyBatis 中查询结果为空时不同返回类型对应返回值问题是 MyBatis 开发中一个常见的问题。当我们使用 MyBatis 进行数据库查询时,查询结果为空时,MyBatis 的...

    springmybatis

    1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...

    MyBatis调用存储过程

    在MyBatis的映射文件(mapper.xml)中,我们需要为存储过程创建一个`&lt;select&gt;`标签,但与通常的查询不同,这里需要设置`id`(标识符)、`resultMap`(结果映射)以及`statementType="CALLABLE"`,这表明这是一个调用...

    mybatis开发步骤

    -- 无条件查询,查询全部,返回值以键值对形式存在List&lt;Map,Object&gt;&gt;中 --&gt; select id,studentId,studentName from t_student &lt;!-- 无条件查询,查询全部,返回值以对象方式存在list中 --&gt; select id,...

    MyBatis3.5.4官方文档.rar

    MyBatis支持两种参数映射方式:Map参数和注解参数。Map参数可以通过key-value方式传递,注解参数则通过在方法参数上使用@Param注解。 7. **结果映射** 结果映射用于将查询结果自动转换为Java对象。MyBatis支持...

    MyBatis学习实例

    MyBatis支持多种参数映射,包括Map参数、简单参数、JavaBean参数和集合参数。通过@Param注解可以为参数指定别名,方便在SQL中引用。 9. **缓存机制** MyBatis提供了本地缓存和二级缓存两种机制,能够提高查询效率...

    mybatis源码分析

    5. MappedStatement:每个SQL语句对应一个MappedStatement对象,包含了SQL的ID、参数类型、返回值类型等信息。它是Executor执行SQL的依据。 6. ParameterHandler:负责处理SQL参数,可以是JavaBean、Map或者简单的...

    spring mybatis 调用oracle存储过程

    在MyBatis中,可以声明一个方法,其返回类型为Map或自定义的Java Bean,代表存储过程的输出参数。在XML配置中,使用`&lt;select&gt;`标签并设置`resultType`属性,然后在`&lt;call&gt;`标签内定义存储过程的调用,包含游标参数。...

    mybatis调用存储过程源码

    - 存储过程的输入参数用`#{paramName}`表示,输出参数需要在Map中设置,并在存储过程中声明为`OUT`类型。 - 有时存储过程返回多个结果集,这时需要在Mapper XML中使用`&lt;resultMap&gt;`标签来处理。 这个提供的...

    mybatis调用储存过程

    4. **处理结果**:如果存储过程有返回值,可以通过`resultType`指定返回结果的类型,MyBatis会自动将结果映射到指定类型。对于`OUT`参数,MyBatis会在执行完存储过程后自动填充。 5. **在Service层调用**:在业务...

    Mybatis-Study.rar

    MyBatis由SQL Map和iBATIS发展而来,是一个优秀的轻量级ORM(Object-Relational Mapping,对象关系映射)框架,它简化了数据库操作,使得开发者可以直接用Java代码来编写SQL语句,从而避免了JDBC的繁琐工作。...

    Mybatis多表查询.docx

    然后,在Dao层返回值为List&lt;Map,Object&gt;&gt;,每一行条目对应一个Map,Map的Key值对应列名或参数名,Map的value值对应实际值。 例如,假设我们有两个表:user和address,我们可以使用Map表关系来实现多表查询: ```...

    MyBatis四天内容回顾.rar

    讲解了MyBatis的参数映射和返回值处理,包括Map参数、集合参数、自定义类型处理器等。还介绍了MyBatis的事务管理,包括手动控制和Spring集成下的事务管理。最后,通过一个实际项目案例,演示了MyBatis如何与Spring、...

    Spring Mvc+Mybatis框架组合增删改查

    这些方法可以接受参数,如实体对象或Map,返回值通常是受影响的行数或查询结果。对于查询,Mybatis支持多种结果类型,如单个对象、List集合或自定义的VO类。 在实际项目中,Controller层会接收到前端发送的请求,...

    mybatis所有Dome(适用于初学者)

    MyBatis 提供了 Map 和 Pojo 两种主要的参数映射方式,可以根据需要选择。对于返回值,MyBatis 可以自动处理单个结果、集合结果以及自定义结果类型。 9. **日志**: MyBatis 集成了多种日志框架,如 Log4j、...

    mybatis笔记.rar

    对于返回值,MyBatis支持自动映射结果集到Java对象,也可以自定义映射规则,如使用`resultMap`标签。 3. **架构分析**:MyBatis的架构主要包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper四...

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    - MyBatis支持各种参数类型,包括基本类型、对象、Map等,通过`@Param`注解指定参数名称。 - 对于存储过程返回的结果集,可以通过`ResultMap`定义映射规则,或者使用`@Results`和`@Result`注解。 6. **事务管理**...

Global site tag (gtag.js) - Google Analytics