轉:
mybatis如何遍歷Map的key和value
1.sql.xml
-
-
-
-
<!--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>
2.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; //新增