Mybatis对多个请求参数的处理以及一些参数处理的细节

当请求参数只有一个时,Mybatis不会对参数进行任何特殊处理

可以直接使用#{字段名}来获取参数值

 

当请求参数有多个的时候,Mybatis会将这些参数封装到一个Map中


        Map的key:param1.........paramN,也可以直接使用0.......N
        Map的value:就是请求参数的值

        需要用#{指定的key}来取出值

//根据id和性别来查询一条信息
	//Mybatis如何封装多个请求参数的
	public Employee queryByIdName(Integer id,String name);
<select id="queryByIdName" resultType="employee">
	 	select * from employee where id=#{param1} and name=#{param2}
	 <!-- 	select * from employee where id=#{0} and name=#{1} -->
	 </select>

我们也可以直接指定使用什么字段,在接口的方法中加上@Param注解就可以

public Employee queryByIdName(@Param("id")Integer id,@Param("name")String name);

 

当请求参数为Collection,数组类型时

此时Mybatis会进行特殊处理,

Collection类型,key为collection

List类型,key为list

数组,key为array

 

#{}和${}的区别

#{}会使用预编译的方式来处理sql语句,${}会直接将值拼接到sql中

所以${}存在安全问题

不过在原生jdbc不支持占位符的地方可以使用${}来进行取值

比如表名,排序查询

 

 

发布了29 篇原创文章 · 获赞 3 · 访问量 868

猜你喜欢

转载自blog.csdn.net/weixin_44616792/article/details/100174429
今日推荐