mybatis实现遍历Map的key和value

网友投稿 357 2022-09-01


mybatis实现遍历Map的key和value

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

mybatis 遍历Map的key和value

sql.xml

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

resultType="java.util.HashMap">

select count(*) as num from ${tableName} where seq =

#{seq};

insert into ${tableName}

separator=",">

${key}

separator=",">

${key}

values

close=")" separator=",">

#{value}

close=")" separator=",">

#{value}

UPDATE ${tableName} SET

separator=",">

${key} = #{content[${key}]}

separator=",">

${key} = #{content[${key}]}

where seq = #{content[seq]} and genius_uid <=

#{content[genius_uid]};

delete from ${tableName}

where seq = #{content[seq]};

java代码

SqlSession session = MyBatisConnectionFactory.getSession("pg");

HashMap params = new HashMap<>(); //传入的参数

params.put("content", tableContent);

params.put("tableName", tableName);

params.put("seq", seq);

int flag = session.delete("deleteOne", params); //删除记录

HashMap 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>。

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

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

具体做法:(Oracle数据库)

  INSERT INTO sp4_acl_so (acl_id, so_uuid__proc_def_id)

  

    

      SELECT #{item.aclId}, #{set}

      FROM DUAL

    

  

aclDeviceMap:就是在接口中使用@Param("aclDeviceMap")标注了变量

使用

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

内层循环中使用

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

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python知识点实战(python简单知识点)
下一篇:Python环境管理(python环境管理工具有哪些)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~