设想一个这样的情景:
如果一个类中有上百个属性,而我们在进行插入修改的时候,只需要对个别属性进行修改,那么显然构造一个类对象来传递数据显得有些多余,此时可以引入Map类,将需要修改传递的数据构造成“键-值”对的形式封装在Map里来进行传递。

举个栗子:

  1. 首先在UserMapper接口中添加一个新的接口
//新增一个用户方法二:通过Map传值
int addUser2(Map<String,Object> map);
  1. 在对应的xml文件文件中写上相应的SQL标签
<!--这里井号中填入的是map的键-->
<insert id="addUser2" parameterType="map">insert into user(id,name,password) values(#{userId},#{userName},#{userPassword})
</insert>
  1. 测试
@Test
public void test5(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map<String, Object> map = new HashMap<>();map.put("userId",6);map.put("userName","零零柒");map.put("userPassword","3535235");mapper.addUser2(map);sqlSession.commit();sqlSession.close();
}

===================================================

关于Mapper.xml文件中,SQL语句取参命名问题:
Map传递参数时,直接在SQL中取出key即可(#{key})
对象传递参数时,直接在SQL中取对象的属性名(#{对象属性名})
只有一个基本参数类型时,可以直接在SQL中取到(#{参数名})

Mybatis学习-关于Map的应用相关推荐

  1. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

  2. MyBatis学习:使用Map的方法传递参数

    1.本篇博客的背景和目的 目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习.阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,回顾了JDB ...

  3. 事务中mybatis通过id查不到但是通过其他条件可以查到_40打卡 MyBatis 学习

    第57次(mybatis) 学习主题:mybatis 学习目标: 1 掌握框架的概念 2 掌握mybatis环境搭建 对应视频: http://www.itbaizhan.cn/course/id/8 ...

  4. Mybatis学习总结二

    Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...

  5. MyBatis学习总结一

    Mybatis学习总结一 1.Mybatis介绍 2.Mybatis架构图 2.1.架构图的意义 2.1.1.JDBC编写 2.1.2.反思问题 2.2.Mybatis架构图 3.入门案例 3.1.下 ...

  6. MyBatis学习随记

    1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Conn ...

  7. MyBatis多参数传递之混合方式——MyBatis学习笔记之十五

    在本系列文章的<MyBatis多参数传递之Map方式示例>一文中,网友mashiguang提问如下的方法如何传递参数:public List findStudents(Map condit ...

  8. Java框架学习笔记--Mybatis学习

    一.Mybatis学习 1.Mybatis简介 简介:Mybatis开源免费框架.原名叫iBatis,2010在googlecode,2013年迁移到github2 作用:数据访问层框架.底层是对JD ...

  9. Mybatis学习一

    1.Mytatis入门程序  代码如下: package myBatis.cn.junit;import java.io.IOException; import java.io.InputStream ...

最新文章

  1. 【支付专区】之解析微信支付返回xml
  2. C++非递归合并排序的通用实现算法(附完整源码)
  3. 一键拼出你的微信好友图片墙!
  4. 脚本示例 (Reporting Services)Microsoft Visual Basic .NET
  5. spring mvc 中文乱码 post与get的方法解决
  6. python中issubset是什么_python3解释器执行 {2, 3, 4}.issubset({2, 3, 4})的结果为__。
  7. 已知函数func的C语言代码框架,第三章习题-ddg..doc
  8. html5编程技术代码,编程技术—CSS技术
  9. [Node.js]001.安装与环境配置
  10. JavaScript之WebSocket 技术
  11. excel软件php函数,excel的函数
  12. selenium反爬
  13. 初识AvalonDock
  14. IBM内存三技术:Chipkill、MPX、MM
  15. 小米也打价格战?会有1999的小米2吗?
  16. undefined reference to `vtkRenderingVolumeOpenGL_AutoInit_Destruct()',`vtkRenderingVolumeOpenGL_Auto
  17. BZOJ1051 HAOI2006受欢迎的牛
  18. 一个基于JDBC的通用DAO的设计参考(北大青鸟课程)
  19. Linux日常——端口
  20. hdu2853Assignment kM算法

热门文章

  1. [长大]_公益-腾讯月捐,顺便记录一下开通财付通
  2. CentOS搭建OpenStack-Queen手记
  3. 最新if,elseif,else最清楚用法解释
  4. 视觉传达设计—2014关于设计分类的解析(17)
  5. 金蝶云星空-临时表清理及计划任务配置检查
  6. 2011感动人物高考素材
  7. 计算机软件板块估值,计算机行业投资策略:估值水平渐趋合理 孕育新机会
  8. c51按键控制灯亮汇编语言,51单片机汇编语言编程进行按键控制
  9. 基于python的活期储蓄账目管理
  10. python:绘制五角星!