Map传递参数,直接在sql中取Key即可
parameterType="map"
对象传递参数,直接在sql中取对象的属性即可
parameterType="Object(具体的对象)"
只有一个基本类型的情况下,直接在sql中取到
多个参数用Map或注解
用例
编写mapper
public interface UserMapper {
public void updateUser2(Map<String,String> map);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--绑定UserMapper-->
<mapper namespace="com.study.dao.UserMapper">
<update id="updateUser2" parameterType="map">
update user set name=#{username} where id=#{userId}
</update>
</mapper>
编写Junit测试
package com.study.dao;
import com.study.pojo.User;
import com.study.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserDaoTest {
@Test
public void updateTest2(){
//1、获取sqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String,String> map = new HashMap<String, String>();
map.put("userId","1");
map.put("username","小狗");
mapper.updateUser2(map);
//2、提交事务
sqlSession.commit();
//3、关闭sqlSession,防止内存泄漏
sqlSession.close();
}
}
结果展示:
mysql> select * from user;
+----+--------+-------+
| id | name | pwd |
+----+--------+-------+
| 1 | 小明 | 12345 |
| 2 | 张三 | 12345 |
| 3 | 李四 | 12345 |
+----+--------+-------+
3 rows in set (0.00 sec)
mysql> select * from user;
+----+--------+-------+
| id | name | pwd |
+----+--------+-------+
| 1 | 小狗 | 12345 | # 修改之后
| 2 | 张三 | 12345 |
| 3 | 李四 | 12345 |
+----+--------+-------+
3 rows in set (0.00 sec)