zoukankan      html  css  js  c++  java
  • 【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标签中

    这个百分号必须使用双引号修饰,单引都不行【另外注入值不要空格分开】

    测试结果

     

  • 相关阅读:
    selenium+python(模块化驱动测试)
    selenium+Python(处理html5的视频播放)
    selenium+Python(文件下载)
    selenium+Python(文件上传)
    selenium+Python(alert 、confirm 、prompt 的处理)
    selenium+Python(表单、多窗口切换)
    Cookie跳转登录验证码
    几种典型的软件自动化测试框架
    Python开发利器之UliPad
    selenium+python(数据驱动测试)
  • 原文地址:https://www.cnblogs.com/mindzone/p/12825486.html
Copyright © 2011-2022 走看看