Mybatis学习-关于Map的应用

it2023-09-30  83

设想一个这样的情景: 如果一个类中有上百个属性,而我们在进行插入修改的时候,只需要对个别属性进行修改,那么显然构造一个类对象来传递数据显得有些多余,此时可以引入Map类,将需要修改传递的数据构造成“键-值”对的形式封装在Map里来进行传递。

举个栗子:

首先在UserMapper接口中添加一个新的接口 //新增一个用户方法二:通过Map传值 int addUser2(Map<String,Object> map); 在对应的xml文件文件中写上相应的SQL标签 <!--这里井号中填入的是map的键--> <insert id="addUser2" parameterType="map"> insert into user(id,name,password) values(#{userId},#{userName},#{userPassword}) </insert> 测试 @Test public void test5(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map<String, Object> map = new HashMap<>(); map.put("userId",6); map.put("userName","零零柒"); map.put("userPassword","3535235"); mapper.addUser2(map); sqlSession.commit(); sqlSession.close(); }

===================================================

关于Mapper.xml文件中,SQL语句取参命名问题: Map传递参数时,直接在SQL中取出key即可(#{key}) 对象传递参数时,直接在SQL中取对象的属性名(#{对象属性名}) 只有一个基本参数类型时,可以直接在SQL中取到(#{参数名})

最新回复(0)