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("%张%");