返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis实现遍历Map的key和value
  • 115
分享到

mybatis实现遍历Map的key和value

2024-04-02 19:04:59 115人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis 遍历Map的key和valuesql.xmljava代码foreach嵌套遍历Map的key和value具体做法:(oracle数据库)使用内层循环中使用myba

mybatis 遍历Map的key和value

sql.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"Http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace必须是接口的全类名 -->
<mapper namespace="com.genius">
 
	<!-- 1.0 查询表结构是否存在 -->
	<select id="selectOne" parameterType="java.util.HashMap"
		resultType="java.util.HashMap">
		select count(*) as num from ${tableName} where seq =
		#{seq};
	</select>
 
	<!-- 1.1 插入一条数据 -->
	<insert id="insertOne" parameterType="java.util.Map">
		insert into ${tableName}
		<foreach collection="content.keys" item="key" open="(" close=")"
			separator=",">
			${key}
		</foreach>
		values
		<foreach collection="content.values" item="value" open="("
			close=")" separator=",">
			#{value}
		</foreach>
	</insert>
 
	<!-- 1.2 更新记录 -->
	<update id="updateOne" parameterType="java.util.Map">
		UPDATE ${tableName} SET
		<foreach collection="content.keys" item="key" open="" close=""
			separator=",">
			${key} = #{content[${key}]}
		</foreach>
		where seq = #{content[seq]} and genius_uid <=
		#{content[genius_uid]};
	</update>
 
	<!-- 1.3 删除无效数据 -->
	<delete id="deleteOne" parameterType="java.util.Map">
		delete from ${tableName}
		where seq = #{content[seq]};
	</delete>
 
</mapper>

java代码

SqlSession session = MyBatisConnectionFactory.getSession("pg");
				HashMap<String, Object> params = new HashMap<>(); //传入的参数
				params.put("content", tableContent);
				params.put("tableName", tableName);
				params.put("seq", seq);
int flag = session.delete("deleteOne", params); //删除记录
HashMap<String, Object> map = session.selectOne("selectOne", params); //查询记录是否存在
flag = session.update("updateOne", params) > 0 ? true : false; //更新
flag = session.insert("insertOne", params) > 0 ? true : false; //新增

foreach嵌套遍历Map的key和value

最近做东西,需要向数据库存储一个保存在HashMap的key和value中的数据。具体的结构大致是Map<Object, Set<String>>。

数据库中需要保存两个个字段:1.key中对象的id,set中的多个string,显然id和set中的string是1对多的关系;需要嵌套循环。

一开始怀疑Mybatis能否做到这样灵活sql,经过尝试,证明了Mybatis的强大。

具体做法:(Oracle数据库)

<insert id="saveMatchResult" >
  INSERT INTO sp4_acl_so (acl_id, so_uuid__proc_def_id)
  <foreach collection="aclDeviceMap.keys" index="index" item="item" separator="UNION ALL">
    <foreach collection="aclDeviceMap[item]" index="index_set" item="set" separator="UNION ALL">
      SELECT #{item.aclId}, #{set}
      FROM DUAL
    </foreach>
  </foreach>
</insert>
  • aclDeviceMap:就是在接口中使用@Param("aclDeviceMap")标注了变量

使用

aclDeviceMap.keys可以取到所有的key,遍历。

内层循环中使用

aclDeviceMap[item]类似aclDeviceMap.get("key")取当前key对应的value值。由于value是set所以还需要遍历。

结果保存成功。再次膜拜强大的Mybatis。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis实现遍历Map的key和value

本文链接: https://lsjlt.com/news/163364.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mybatis实现遍历Map的key和value
    目录mybatis 遍历Map的key和valuesql.xmljava代码foreach嵌套遍历Map的key和value具体做法:(Oracle数据库)使用内层循环中使用myba...
    99+
    2024-04-02
  • java怎么遍历map的key和value
    在Java中,可以使用`Map`的`keySet()`方法来获取`Map`中所有的键,使用`values()`方法来获取所有的值。可...
    99+
    2023-09-23
    java
  • Java实现Map遍历key-value的四种方法
    目录Map遍历key-value的四种方法1、构造HashMap,给hashMap添加元素2、方法一:先用keySet()取出所有key值,再取出对应value—&mda...
    99+
    2024-04-02
  • java如何遍历map的key
    Java中可以使用迭代器(Iterator)或者增强型for循环(forEach)来遍历Map的key。使用迭代器遍历Map的key...
    99+
    2023-08-11
    java
  • Go遍历struct,map,slice的实现
    目录遍历结构体 遍历切片 遍历MapGolang json序列化(struct,int,map,slice)遍历结构体 如何实现遍历结构体字段? 好吧,言归正传!举个例子:...
    99+
    2024-04-02
  • go语言yaml转map、map遍历的实现
    yaml文件内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snaps...
    99+
    2024-04-02
  • Map实现遍历的方法有哪些
    Map实现遍历的方法有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Map获取键值Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对...
    99+
    2023-05-31
    map 遍历
  • Java如何实现Map集合遍历
    这篇文章给大家分享的是有关Java如何实现Map集合遍历的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用...
    99+
    2023-05-30
  • Android 对Map按key和value分别排序的实例
    一. 理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(...
    99+
    2022-06-06
    value map 排序 key Android
  • Map集合中获取key-value值的实现方法
    目录一、前置准备二、获取Map的key-value值方法一方法二    方法三总结Map<K,V>集合是一种键值映射形式的集合。 当调用pu...
    99+
    2023-03-22
    Map集合获取key-value值 Map集合 Map集合key-value值
  • map循环遍历取值怎么实现
    在Python中,可以使用items()方法来获取字典中的键值对,然后通过循环遍历取值。 示例如下: my_dict = {...
    99+
    2024-03-11
    map
  • [java] Map循环遍历的5种方法实现
    [java] Map循环遍历的5种方法实现 文章目录 一、方法一(推荐)二、方法二(推荐)三、方法三四、方法四五、方法五总结 一、方法一(推荐) 推荐使用此方法效率比较高 Map...
    99+
    2023-10-09
    java
  • Java中Map循环遍历的五种方法实现
    目录1、创建一个Enum2、开始遍历方法一方法二方法三方法四方法五因为Map比较常用,所以今天来总结下Map取值比较常用的几种遍历方法。 1、创建一个Enum public enum...
    99+
    2024-04-02
  • python的序列遍历和字典遍历的实现方法
    这篇文章主要介绍“python的序列遍历和字典遍历的实现方法”,在日常操作中,相信很多人在python的序列遍历和字典遍历的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • Java遍历Map的5种方式实例
    目录一、遍历Map的五种方式二、准备条件三、keySet和values方式遍历四、keySet和get(key)方式遍历map五、entrySet方式遍历map六、Iterator方...
    99+
    2023-02-09
    java遍历map map遍历的几种方式 java如何遍历map
  • es6怎么遍历对象中的keys和value
    ES6提供了多种遍历对象的方法。其中,遍历对象的keys和value可以使用`for...of`循环和`Object.entries...
    99+
    2023-10-26
    es6
  • Java项目中实现遍历Map的方法有哪些
    Java项目中实现遍历Map的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言关于java中的map遍历有多种方法,从最早的Iterator,到java5支持的fo...
    99+
    2023-05-31
    java map 遍历
  • 使用Python实现树的遍历算法和类型的树的遍历
    树遍历意味着访问树中的每个节点。和线性数据结构单一的遍历方式不同,二叉树是分层式数据结构可以以不同的方式遍历。 树遍历结构特点 1、每个树的节点都承载一个数据 2、每个树下都有2个子树 树遍历有三种类型 1、中序遍历 先遍历左子树...
    99+
    2024-01-23
  • Redis遍历所有key的两个命令(KEYS 和 SCAN)
    当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern 官网对于KEYS命令有一个提示:  KEYS 的速度非...
    99+
    2024-04-02
  • sql查询返回值使用map封装多个key和value实例
    直接上代码,代码是测试过的 1.重写ResultHandler public class MapResultHandler implements ResultHandler { ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作