转:

mybatis如何遍历Map的key和value

2017年11月28日 10:07:57 Joker_Ye 阅读数:4158
 

1.sql.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <!--namespace必须是接口的全类名 -->
  5. <mapper namespace="com.genius">
  6.  
  7. <!-- 1.0 查询表结构是否存在 -->
  8. <select id="selectOne" parameterType="java.util.HashMap"
  9. resultType="java.util.HashMap">
  10. select count(*) as num from ${tableName} where seq =
  11. #{seq};
  12. </select>
  13.  
  14. <!-- 1.1 插入一条数据 -->
  15. <insert id="insertOne" parameterType="java.util.Map">
  16. insert into ${tableName}
  17. <foreach collection="content.keys" item="key" open="(" close=")"
  18. separator=",">
  19. ${key}
  20. </foreach>
  21. values
  22. <foreach collection="content.values" item="value" open="("
  23. close=")" separator=",">
  24. #{value}
  25. </foreach>
  26. </insert>
  27.  
  28. <!-- 1.2 更新记录 -->
  29. <update id="updateOne" parameterType="java.util.Map">
  30. UPDATE ${tableName} SET
  31. <foreach collection="content.keys" item="key" open="" close=""
  32. separator=",">
  33. ${key} = #{content[${key}]}
  34. </foreach>
  35. where seq = #{content[seq]} and genius_uid <=
  36. #{content[genius_uid]};
  37. </update>
  38.  
  39. <!-- 1.3 删除无效数据 -->
  40. <delete id="deleteOne" parameterType="java.util.Map">
  41. delete from ${tableName}
  42. where seq = #{content[seq]};
  43. </delete>
  44.  
  45. </mapper>

2.java代码:

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

mybatis如何遍历Map的key和value【增删改查】的更多相关文章

  1. mybatis实战教程(mybatis in action)之三:实现数据的增删改查

    前面已经讲到用接口的方式编程.这种方式,要注意的一个地方就是.在User.xml  的配置文件中,mapper namespace="com.yihaomen.mybatis.inter.I ...

  2. Mybatis的学习总结(一)——使用配置文件实现增删改查

    在使用Mybatis作为持久层来进行操作数据库,有很多的操作都是一样的,基本上都是先得到session,然后调用session提供的相关方法进行操作,接着提交session,最后关闭session.那 ...

  3. Mybatis学习(3)实现数据的增删改查

    前面已经讲到用接口的方式编程.这种方式,要注意的一个地方就是.在User.xml  的配置文件中,mapper namespace="com.yihaomen.mybatis.inter.I ...

  4. Mybatis select、insert、update、delete 增删改查操作

    MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简单的XML ...

  5. 【MyBatis】-----【MyBatis】---表级联系【一对一】--增删改查

    一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...

  6. MyBatis学习(二)MyBatis-Statement方式的增删改查

    1.前期准备 项目骨架图如下所示 1.配置conf.xml <?xml version="1.0" encoding="UTF-8" ?> < ...

  7. Mybatis学习总结(二)—使用接口实现数据的增删改查

    在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num ...

  8. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  9. SpringMVC,MyBatis商品的增删改查

    一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...

随机推荐

  1. vmware修改虚拟机名称

    原虚拟机名称为:OLD_VMNAME需要修改成:NEW_VMNAME vmware创建虚拟机时,会以虚拟机名称存储对应的磁盘和配置文件.如果只在vcenter界面上修改虚拟机名称存储端名称是不会修改的 ...

  2. eclipse控制台出现中文乱码的问题

    在Eclipse.exe同目录下,在eclipse.ini添加:Dfile.encoding=utf-8

  3. 【转】(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)

    bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域. bss是英文Block Started by Symbol的简称. bss段属于静态内存分配. ...

  4. Linux下周期性查看GPU状态

    Linux下周期性查看GPU状态 NVIDIA自带了nvidia-smi命令来查看GPU的使用情况 了解一下watch命令 $ whatis watch watch (1) - execute a p ...

  5. java开发技巧

    1,IDEA辅助功能Shift +F2去到有错误的地方Alt+Enter,会给出解决错误的建议: 2,调试,没问题的步骤,直接跳过,不要跳入细节: 调试时,要明确要跟踪的变量,不要陷入混乱: 3,调试 ...

  6. 转 shell中的多进程【并发】

    原文地址https://bbs.51cto.com/thread-1104907-1-1.html 根据我个人的理解, 所谓的多进程 只不过是将多个任务放到后台执行而已,很多人都用到过,所以现在讲的主 ...

  7. VMware 虚拟机下载与安装

    虚拟机下载 VMware官网地址:https://www.vmware.com/ 进行官网后,点击左边的下载图标,然后 根据操作系统选择合适的产品,在这里以Windows系统为例,点击转至下载,如下图 ...

  8. 【jqGrid】翻页获取选中的值

    1.实现效果: 点击确定所选按钮之后,获取翻页选中的题库表号 2.关键代码 onSelectAll: function (aRowids, status) { }, onSelectRow: func ...

  9. 洛谷-P3805-Manacher模板

    链接: https://www.luogu.org/problem/P3805 题意: 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 思路: ...

  10. PHP基础之如何调试PHP程序(HBuilder)

    先到这里下载HBuilder(HBuilder是最棒的PHPIDE,可以参考PHP是世界上最棒的编程语言),运行后界面如下: 打开WAMP的调试选项(XDebug):,每开启一个Xdebug选项,WA ...