MyBatis多参数入参的三种方法
-
@Param1(别名)Object xxx,@Param1(别名)Object xxx
Mapper类:public List<SysUser> findUserByidandName(@Param("a")String realName,@Param("b")String roleId);
Mapper.xml:
<select id="findUserByidandName" resultType="com.liu.pojo.SysUser"> select * from t_sys_user <trim prefix="where" prefixOverrides="and"> <if test="realName != null and realName != ''"> and realName = #{a} </if> <if test="roleId != null and roleId != ''"> and roleId = #{b} </if> </trim> </select>
测试类:
@Test public void findUserByIdandName(){ SqlSession sqlSession=MybatisUtil.getSqlSession(); sysUserMapper mapper=sqlSession.getMapper(sysUserMapper.class); List<SysUser> userList=mapper.findUserByidandName("彭", 1); for(SysUser sysUser : userList) { System.out.println(sysUser); } }
-
使用对象传参
Mapper类:public int updateUser(SysUser sysUser);
Mapper.xml:
<update id="updateUser" parameterType="com.liu.pojo.SysUser"> update t_sys_user <trim prefix="set" suffixOverrides="," suffix="where id=#{id}"> <if test="realName != null and realName != ''"> realName=#{realName}, </if> <if test="password != null and password != ''"> password=#{password}, </if> </trim> </update>
测试类:
@Test public void updateUser(){ SqlSession sqlSession=MybatisUtil.getSqlSession(); sysUserMapper mapper=sqlSession.getMapper(sysUserMapper.class); SysUser sysUser = new SysUser(); sysUser.setId(1); sysUser.setRealName("彭乐攀"); System.out.println(mapper.updateUser(sysUser)); sqlSession.commit(); }
-
使用HashMap
Mapper类:public int updatePassWord(Map map);
Mapper.xml:
<update id="updatePassWord" parameterType="map"> update t_sys_user set password = #{password} where id = #{id} </update>
测试类:
@Test public void updatepassword(){ SqlSession sqlSession=MybatisUtil.getSqlSession(); sysUserMapper mapper=sqlSession.getMapper(sysUserMapper.class); Map map = new HashMap(); map.put("password","131313"); map.put("id",1); System.out.println(mapper.updatePassWord(map)); sqlSession.commit(); }