Mybatis传多个参数的方法
一、#{参数索引}
1. DAO层
Mapper接口类
User logon(String user_name,Stringpassword);
Mapper.xml文件
<select id="logon" resultMap="UserResultMap" > select <include refid="Base_Column_List"/> from sys_user WHERE user_name = #{0} and password = #{1} </select>
这里用的是#{参数索引}
2. Service层
Service接口类
User logon(String user_name,String password);
Service实现类
@Override public User logon(String user_name, String password) { return userMapper.logon(user_name,password); }
二、Map传参数
1. DAO层
Mapper接口类
User logon(Map map);
Mapper.xml文件
<select id="logon" resultMap="UserResultMap" > select <include refid="Base_Column_List"/> from sys_user where user_name = #{user_name,jdbcType=VARCHAR} and password = #{password,jdbcType=VARCHAR} </select>
这里接口方法传入的map
2. Service层
Service接口
User logon(String user_name,String password);
Service实现类
@Override public User logon(String user_name, String password) { Map paramMap=new HashMap(); paramMap.put("user_name",user_name); paramMap.put("password",password); User user=userMapper.logon(paramMap); return user; }
Service层实现了要将参数与map绑定
三、注解方法传参数
1. DAO层
Mapper接口类
User logon(@Param("user_name")String user_name,@Param("password")String password);
Mapper.xml文件
<select id="logon" resultMap="UserResultMap" > select <include refid="Base_Column_List"/> from sys_user where user_name = #{user_name,jdbcType=VARCHAR} and password = #{password,jdbcType=VARCHAR} </select>
这里主要注意接口传入参数前面加了@Param注解
2. Service层
Service接口
User logon(String user_name,String password);
Service实现类
@Override public User logon(String user_name, String password) { return userMapper.logon(user_name,password); }