Mybatis入门(三) mapper传递参数解析以及模糊查询防止sql注入

mapper标签中 parameterType 对于参数设置有以下四种情况:

1,只有一个参数时,parameterType="int",直接填方法形式参数的类型就可以
2,多个参数查询时,使用map,parameterType="map",#{id} id 为对应map中对应的key值,如下
System.out.println("=============Java文件中=====");
Map<String,String> map = new HashMap<>();
map.put("id","1");
map.put("name","张三");
map.put("pwd","123456");

<!--===========XML文件中==========-->
<insert id="insertUser" parameterType="map">
    insert into school.user (id,name,pwd) values (#{id},#{name},#{pwd})
</insert>

3, 参数类型为对象时,parameterType="对应类",直接填方法中形式参数的类名
4,万能的map,当对象存在上百个属性且修改只有几个属性值,可以直接用map,将属性值直接当作key。

模糊查询

模糊查询会导致SQL注入,是一种常见的攻击方式。例如“or ‘1’=’1’”这样的语句

底层jdbc调用parpredStatement会消除SQL注入问题,在Mybatis中,#{}也是用parpredStatement

模糊查询语句可以用如下两个方法:

1),sql语句编写时直接拼接%

elect * from school.user where name like concat(‘%‘,#{},‘%‘)

2),调用方法入参时,进行模糊匹配

mapper.deleteUser("%张%");

 


Mybatis入门(三) mapper传递参数解析以及模糊查询防止sql注入

上一篇:uniapp项目优化


下一篇:mybatis根据表逆向自动化生成代码(自动生成实体类、mapper文件、mapper.xml文件)