一、搭建环境
基础环境搭建+pojo等都可参考Mybatis项目实战
一文,地址:https://blog.csdn.net/junR_980218/article/details/124145948,而本文主要讲解其中Map的使用。
二、万能的Map
1、dao层中添加接口
int addUser(Map<String,Object>,map);
2、xml配置文件中编写sql语句
<insert id="addUser1" parameterType="map">
insert into mybatis.user(id,name,pwd)
values(#{userId},#{userName},#{pwd});
</insert>
这里与普通的(非map形式)插入语句insert做一个对比
<insert id="addUser1" parameterType="User">
insert into mybatis.user(id,name,pwd)
values(#{id},#{name},#{pwd});
</insert>
注意:
从上面两个传入语句可以看出,非map形式的插入语句,参数是User对象,所以values后面的占位符必须与User对象中属性的字段一致,而且,对象拥有的全部字段一个不少都必须写出来,而使用map形式后的插入语句,values后面的占位符可以任意,插入的时候只要符合数据库字段的规则就行,不必要非要一致,并且如果只插入其中几个字段的话,可以不将字段全部写出,只写出需要插入的字段即可。
3、测试
@Test //插入学生信息
public void addStudent1(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
UserMapper mapper =sqlSession.getMapper(UserMapper.class);
Map<String,Object> map=new HashMap<String,Object>();
//这里可以只插入部分字段的值,不需要插入的可以直接不写
map.put("userId",5);
map.put("userName","Hello");
map.put("password","123456");
mapper.addUser1(map);
sqlSession.close();
}
万能的map,平时不怎么用,但是在企业中用的非常多,可以在对象的属性值很多的时候,直接插入或者更新其中部分字段字段的值,而不必要将那么多的属性值全部罗列,非常的方便。