此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

#{}多参数如何处理

假设我们的sql需要多个参数,例如:

<select id="login" resultType="com.zpc.mybatis.pojo.User"> 
  select * from tb_user where user_name = #{userName} and password = #{password}
</select>

而我们的函数如下:

/**
 * 登录(直接使用注解指定传入参数名称)
 *
 * @param userName
 * @param password
 * @return
 */
public User login( String userName, String password){查询,传入参数xxx}

#{userName}和#{password}能与userName、password自动映射上吗?答案是不能

 

方法一

<select id="login" resultType="com.zpc.mybatis.pojo.User">
    select * from tb_user where user_name = #{0} and password = #{1}
</select>

通过参数需要来映射

 

方法二

<select id="login" resultType="com.zpc.mybatis.pojo.User"> 
  select * from tb_user where user_name = #{param1} and password = #{param2}
</select>

通过param1与param2来映射,与方法一类似

显然这两种方法都缺乏灵活性

 

方法三

public User login(@Param("userName") String userName, @Param("password") String password);

在形参处通过注解表明映射关系

posted @ 2018-12-25 10:57  炎泽  阅读(253)  评论(0编辑  收藏  举报