在使用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'}
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
在将查询结果转换为Map时,我们可能会遇到需要将Map的Key由下划线形式转换为驼峰形式的需求。 要实现这个功能,我们可以创建一个工具类,专门处理这种转换。以下是一个简单的示例: ```java import java.util.Map;...
在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis,并利用PageHelper插件实现接口返回值的分页功能。SpringBoot以其简洁、快速的特性,成为了现代Java开发中的首选框架,而MyBatis作为轻量级的持久层框架...
MyBatis 中查询结果为空时不同返回类型对应返回值问题 MyBatis 中查询结果为空时不同返回类型对应返回值问题是 MyBatis 开发中一个常见的问题。当我们使用 MyBatis 进行数据库查询时,查询结果为空时,MyBatis 的...
1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...
在MyBatis的映射文件(mapper.xml)中,我们需要为存储过程创建一个`<select>`标签,但与通常的查询不同,这里需要设置`id`(标识符)、`resultMap`(结果映射)以及`statementType="CALLABLE"`,这表明这是一个调用...
-- 无条件查询,查询全部,返回值以键值对形式存在List<Map,Object>>中 --> select id,studentId,studentName from t_student <!-- 无条件查询,查询全部,返回值以对象方式存在list中 --> select id,...
MyBatis支持两种参数映射方式:Map参数和注解参数。Map参数可以通过key-value方式传递,注解参数则通过在方法参数上使用@Param注解。 7. **结果映射** 结果映射用于将查询结果自动转换为Java对象。MyBatis支持...
MyBatis支持多种参数映射,包括Map参数、简单参数、JavaBean参数和集合参数。通过@Param注解可以为参数指定别名,方便在SQL中引用。 9. **缓存机制** MyBatis提供了本地缓存和二级缓存两种机制,能够提高查询效率...
5. MappedStatement:每个SQL语句对应一个MappedStatement对象,包含了SQL的ID、参数类型、返回值类型等信息。它是Executor执行SQL的依据。 6. ParameterHandler:负责处理SQL参数,可以是JavaBean、Map或者简单的...
在MyBatis中,可以声明一个方法,其返回类型为Map或自定义的Java Bean,代表存储过程的输出参数。在XML配置中,使用`<select>`标签并设置`resultType`属性,然后在`<call>`标签内定义存储过程的调用,包含游标参数。...
- 存储过程的输入参数用`#{paramName}`表示,输出参数需要在Map中设置,并在存储过程中声明为`OUT`类型。 - 有时存储过程返回多个结果集,这时需要在Mapper XML中使用`<resultMap>`标签来处理。 这个提供的...
4. **处理结果**:如果存储过程有返回值,可以通过`resultType`指定返回结果的类型,MyBatis会自动将结果映射到指定类型。对于`OUT`参数,MyBatis会在执行完存储过程后自动填充。 5. **在Service层调用**:在业务...
MyBatis由SQL Map和iBATIS发展而来,是一个优秀的轻量级ORM(Object-Relational Mapping,对象关系映射)框架,它简化了数据库操作,使得开发者可以直接用Java代码来编写SQL语句,从而避免了JDBC的繁琐工作。...
然后,在Dao层返回值为List<Map,Object>>,每一行条目对应一个Map,Map的Key值对应列名或参数名,Map的value值对应实际值。 例如,假设我们有两个表:user和address,我们可以使用Map表关系来实现多表查询: ```...
讲解了MyBatis的参数映射和返回值处理,包括Map参数、集合参数、自定义类型处理器等。还介绍了MyBatis的事务管理,包括手动控制和Spring集成下的事务管理。最后,通过一个实际项目案例,演示了MyBatis如何与Spring、...
这些方法可以接受参数,如实体对象或Map,返回值通常是受影响的行数或查询结果。对于查询,Mybatis支持多种结果类型,如单个对象、List集合或自定义的VO类。 在实际项目中,Controller层会接收到前端发送的请求,...
MyBatis 提供了 Map 和 Pojo 两种主要的参数映射方式,可以根据需要选择。对于返回值,MyBatis 可以自动处理单个结果、集合结果以及自定义结果类型。 9. **日志**: MyBatis 集成了多种日志框架,如 Log4j、...
对于返回值,MyBatis支持自动映射结果集到Java对象,也可以自定义映射规则,如使用`resultMap`标签。 3. **架构分析**:MyBatis的架构主要包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession和Mapper四...
- MyBatis支持各种参数类型,包括基本类型、对象、Map等,通过`@Param`注解指定参数名称。 - 对于存储过程返回的结果集,可以通过`ResultMap`定义映射规则,或者使用`@Results`和`@Result`注解。 6. **事务管理**...