目录
一 点睛
如果我们的实体类或者数据库中的表,字段或参数过多,可以考虑使用Map。
Map传递参数,直接在sql中取出key即可。
void insertUser2(Map<String, Object> map);
parameterType="map"
对象传递参数,直接在sql中取对象的属性即可。
void insertUser(User user);
parameterType="com.cakin.pojo.User"
只有一个基本类型参数的情况,可以不写 parameterType
void deleteUser(int id);
// XML中,下面这个也可不写
parameterType="int"
多个参数,用Map。
二 实战
1 Mapper层核心代码
/**
* 功能描述:通过Map插入用户数据
*
* @author cakin
* @date 2020/6/16
* @param map 用户数据存在于map中
*/
void insertUser2(Map<String, Object> map);
2 XML核心代码
<!--通过map插入,字段的名字就可以随便取了-->
<insert id="insertUser2" parameterType="map">
insert into user(id,name,pwd) values (#{userId},#{userName},#{password})
</insert>
3 测试代码
@Test
public void insertUser2() {
// 第一步,获得sqlSession
SqlSession sqlSession = MybatisUtil.getSqlSession();
// 执行SQL
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId", 5);
map.put("userName", "xiaohua");
map.put("password", "123456");
userMapper.insertUser2(map);
// 注意这里一定要提交
sqlSession.commit();
// 关闭session
sqlSession.close();
}