接口中的参数传入map;

实现类的传入参数为map的键的名称,这个键可以自定义名称;

例:根据ID获取用户

接口:

//根据ID获取用户User getUserById2(Map<String,Object>map);

接口实现类:

   <select id="getUserById2" parameterType="map" resultType="com.kuang.pojo.User">select * from mybatis.user where id=#{userId};//userId是自定义的键,用来作为id的参数</select>

测试类:

   @Testpublic void getUserById2(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);HashMap<String, Object> map = new HashMap<>();map.put("userId",3);User userById2 = mapper.getUserById2(map);System.out.println(userById2);sqlSession.commit();sqlSession.close();}

map传递参数,直接在sql取出key

对象传递参数,直接在sql中取出对象的属性

只有一个基本类型参数,不需要写parameterType

例:添加用户

接口:

int addUser2(Map<String,Object> map);

实现类:

    <insert id="addUser2" parameterType="map">insert into mybatis.user (id,name,pwd) values(#{userId},#{userName},#{passWord});</insert>//userId,userName,passWord为map自定义键

测试类:

   @Testpublic void addUser2(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);HashMap<String, Object> map = new HashMap<>();map.put("userId",5);map.put("userName","saf");map.put("passWord","09090");mapper.addUser2(map);sqlSession.commit();sqlSession.close();}

模糊查询:

例:获取密码以4结尾的用户

接口:

 //模糊查询List<User>getUserLike(String value);

实现类:

  <select id="getUserLike" resultType="com.kuang.pojo.User">select * from mybatis.user where pwd like #{value}</select>

为了防止sql注入,like写为参数的形式。在java代码执行的时候,传递通配符%

测试类:

    @Testpublic void getUserLike(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> userLike = mapper.getUserLike("%4");for (User user : userLike) {System.out.println(user);}sqlSession.close();}

【狂神MyBatis笔记】map作为参数传递类型进行增删改查模糊查询相关推荐

  1. Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查

    之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...

  2. 在Mybatis中使用万能的Map传参,实现增删改查

    在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...

  3. Mybatis-增删改查模糊查询分页注解(普通类型参数、引用类型参数、Map类型参数)

    代码地址https://www.lanzouw.com/ihOmnwdtbrc 请先看项目目录结构,然后再写代码.target是编译后的输出目录,只需要保证src目录目录一致就行. 1.创建数据库my ...

  4. ORM框架之Mybatis(一)基于mapper配置增删改查

    Mybatis是现在非常流行的SSM框架中的M部分,Mybatis也是一个主流的ORM框架,在项目中用来处理持久层数据. 一.Mybatis框架介绍及使用 1.1 mybatis框架概述: mybat ...

  5. Mybatis入门:2(xml形式的增删改查)

    xml形式的增删改查 这里感觉没啥好讲的,照着代码自己敲一遍.认真再看看应该都懂的. Maven工程坐标 <?xml version="1.0" encoding=" ...

  6. Mybatis:Example类的使用--基本增删改查,模糊查询,排序,or,分页查询

    MyBatis Generator 介绍 MyBatis Generator:简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类 ...

  7. Mybatis中使用Dao实现类实现增删改查【实际开发中使用代理dao】

    在Mybatis开发中,使用到的是代理Dao的方式实现增删改查,这样就不需要在写Dao的实现类 但是Mybatis也支持写Dao实现类!即DaoImpl 直接上DaoImpl,之前的代码可以参考前面几 ...

  8. Hibernate 笔记4 实现对数据库的增删改查

    1  准备 首先在mysql数据库中建表User,并添加相关信息. user表结构如下. +-------+--------------+------+-----+---------+-------- ...

  9. MySQL笔记(二)基础的增删改查

    这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇主要是简单增删改查.有错误的欢迎大家指出... #增删改查 #创建部门表 CREATE TABLE IF NOT EXISTS tb_dep ...

最新文章

  1. 宁‘内卷‘,勿‘躺平‘
  2. AS莫名报错 Error:Could not download junit.jar (junit:junit:4.12): No cached version available
  3. 【Node.js学习小案例】DNS域名解析 一
  4. jQuery对象和DOM对象
  5. PHP操作mongodb数据库操作类
  6. ORACLE SQL调优之执行计划与隐藏参数_complex_view_merging
  7. poj 1679: The Unique MST【次小生成树】
  8. 企业级开源电商系统5vShop商城系统源码v1.9.5
  9. linux 使用 /proc 文件系统
  10. 32 开漏输出 高电平_关于各种IO输出类型详解
  11. OpenGL(5)——变换
  12. asp.net应用程序级别跟踪
  13. Spring AOP高级——源码实现(2)Spring AOP中通知器(Advisor)与切面(Aspect)
  14. 记一次Alluxio HA master启动失败
  15. Android如何在免Root下自动Pay(非人为非无障碍),引起的深思?
  16. Package cmake is not available, but is referred to by another package.
  17. [网站] 中国古代名画鉴赏网站
  18. Oracle高级数据库复习
  19. 有时候来不及去菜场,我就会给多头绒泡菌叫外卖,它真的很喜欢吃平菇 | 曳尾菌 一席第719位讲者...
  20. 计算机类图书的中国法类号,公共书目查询

热门文章

  1. 【eoe 1】获取Android源代码
  2. JAVA作业-简易计算器
  3. Bailian4071 查找出现了k次的字符【字符串】
  4. POJ NOI MATH-7654 等差数列末项计算
  5. Maven 项目管理 —— 安装与配置
  6. 词汇的积累 —— 同义反复、写景状物
  7. 机器学习实践指南(五)—— GD/SGD/MSGD 伪代码演示
  8. [面试] C/C++ 语法 —— 内存与操作系统
  9. python刚出来多少薪资-Python工资待遇的几个层级,你工作几年了?目前是哪个层级?...
  10. python自动化办公模块有哪些-Python 自动化办公|Word文档