多平台统一管理软件接口,如何实现多平台统一管理软件接口
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.put("content", tableContent);
params.put("tableName", tableName);
params.put("seq", seq);
int flag = session.delete("deleteOne", params); //删除记录
HashMap
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~