【Mybatis】07 万用Map & 模糊查询细节
这应该算一个补充点
在尚硅谷的Java笔记资料有专门的一起万用Map讲解
参考自:https://www.bilibili.com/video/BV1NE411Q7Nx?p=5
万用Map
我们可以使用Map作为SQL参数注入的一个特殊手段

对应的Mapper可以这么写:
参数类型是Map,不要忘记Mybatis官方说的Java常用类型的别名,
虽然写Map也会识别,但是尽量按官方说的标准来使用,这是一种约定

SQL注入的参数标识符可以随意定义,只要我们在Map容器中的key要一一对应即可
实际开发并不推荐使用Map作为SQL注入的手段,这样的开发不规范,后续的维护很困难
如果必须使用,一定要备注键名对应说明
测试结果成功
@Test
public void mapTest(){
SqlSession sqlSession = MybatisUtil.getSqlSession(true);
System.out.println(sqlSession);
UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map<String,Object> map = new HashMap<String, Object>(); map.put("name","哈吉咩");
map.put("password","335577"); int add = mapper.addUserByMap(map);
System.out.println(add);
sqlSession.close();
}

模糊查询要注意的实现细节
案例,使用模糊查询

配置SQL
因为在核心配置中设置了包扫描别名和注解别名,根据官方的描述
注解别名会优先配置的包别名,这里的实体类使用注解的别名
Like 一般要配合通配符 % or _ 一起使用,这里不写死的话,就要在注入的时候写进String

忘了Like怎么写?翻回我自己写的笔记

查询时我们就要这样编写

为了防止SQL注入攻击,我们不应该这样写模糊SQL的注入,这个注入是危险的
所以就像刚开始提到的一样,应该写死在Mapper配置的SQL标签中
这个百分号必须使用双引号修饰,单引都不行【另外注入值不要空格分开】

测试结果

【Mybatis】07 万用Map & 模糊查询细节的更多相关文章
- 4.万能的Map+模糊查询
万能的Map 当数据或者属性很多的时候,可以选择性的单独改变密码或者用户名等等 UserMapper.java int updateUserByMap(Map<String,Object> ...
- 使用mybatis从mysql里进行模糊查询的编码问题
关于这个问题,记录下我的解决方法,希望对有同样困惑的朋友,有所帮助. 问题描述: 我在做mybatis从mysql里模糊查询时,如果模糊的关键词是字母的话,可以查出来.如果模糊的关键词是汉字的话,查不 ...
- mybatis 特殊符号转义和模糊查询和批量插入
1 xml文件特殊符号转义 < < > > <> <> & & ' ...
- 【MyBatis】多关键字的模糊查询
目录 情景分析 题目 要求 相关代码 Mapper.java Impl.java mapper.xml test.java 思路分析 1.最开始,参数没有使用List,引起的问题 2.Mybatis的 ...
- mybatis中使用mysql的模糊查询字符串拼接(like)
方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...
- MyBatis的手动映射与模糊查询
一.手动映射 当实体类属性与数据库字段名不同时,无法自动映射,导致查询出空值,这时候可以使用手动映射 在select节点添加resultMap属性与resultMap节点建立关系
- 关于mybatis中sql映射文件模糊查询的使用
1.从前台传递一个String类型的参数到后台进行查询,如果牵涉到模糊查询会报错,应该把参数封装到对象中再进行传递然后进行模糊查询 2.一个查询框,多个查询条件 <if test="c ...
- mybatis 实现分页和过滤模糊查询
基于 mybatis 的分页和过滤查询 学习内容: 分页设计 1.分页需传递的参数 2.分页需展示的数据 3.分页需展示的数据的来源 3.1.结果总数与结果集(分页原理) 3.2.总页数.上一页和下一 ...
- mybatis xml 文件中like模糊查询
1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. 2.CONCAT()函数 My ...
- mybatis的动态sql及模糊查询
1.动态sql 使用类似于jstl表达式来实现 2.模糊查找 用一个对象来封装条件 步骤: 1)新建一个条件实体 package com.hy.mybatis.entity; public class ...
随机推荐
- Java中try catch finally 关键字
异常处理中的几个常用关键字(try catch finally throw throws) 异常处理 java中提供一套异常处理机制,在程序发生异常时,可以执行预先设定好的处理程序, 执行完成后,程序 ...
- 引用数据类型string字符串 类型转换
String 任何" "之间的值 包括空格 String类型的字面取值 String str1 = "你好" String str2 = "hello ...
- work07
day08作业: 必做题:============================================================ 第一题: 定义一个字符串s = "Hell ...
- CSS3随机背景图片切换特效
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` CSS3随机背景图片切换特效 日期:2018-5-16 阿 ...
- Java与React轻松导出Excel/PDF数据
前言 在B/S架构中,服务端导出是一种高效的方式.它将导出的逻辑放在服务端,前端仅需发起请求即可.通过在服务端完成导出后,前端再下载文件完成整个导出过程.服务端导出具有许多优点,如数据安全.适用于大规 ...
- ELKF(elasticsearch、logstash、kibana、filebeat)搭建及收集nginx日志
1.elasticsearch 1.1.根目录下新建data文件夹 1.2.修改elasticsearch.yml文件,添加以下内容 path.data: /home/wwq/elk/elastics ...
- 无法启动 IIS Express Web 服务器.....另一个程序正在使用此文件,进程无法访问。 问题解决
一般是由于端口被占用导致的,但是这个端口你在命令行netstat -a里 排除 如果发现被占用,那么就kill进程就可以了 如果没有发现被占用,依然无法启动,可以尝试以下方法 解决方案1: 修改iis ...
- 记录一次EF实体跟踪错误
记录一次EF实体跟踪错误 前言 在我写文章编辑接口的,出现了一个实体跟踪的错误,详情如下 System.InvalidOperationException: The instance of entit ...
- 手机护眼概论及OLED屏幕降低频闪原理介绍
影响护眼的因素 蓝光 目前手机大多已经实现硬件低蓝光,而且蓝光也可以通过护眼模式轻易克服. 偏振光 偏振光指振动方向与传播方向不对称的光,主要分为圆偏振光与线偏振光两种. 线偏振光测试方法为:透过偏振 ...
- C++ 史上首次超越 C,Python 第二!
TIOBE 公布了 2024 年 6 月的编程语言排行榜--C++ 史上首次超越 C,跃至榜二,仅次于 Python. C++ 是一种广泛应用于嵌入式系统.游戏开发和金融交易软件等领域的语言,在本月成 ...