当我们的实体类、数据库中表的字段或者参数过多或者可以为空的时候,我们推荐使用Map
1、add(insert)
-
Dao接口;
//insert一个用户,万能的Map void addUser2(Map<String,Object> map);
-
接口实现类(由原来的UserDaoImpl转变为一个Mapper.xml配置文件);
<!--传递map的key--> <insert id="addUser2" parameterType="map"> insert into mybatis.user (id,name,pwd) values (#{userid},#{userName},#{password}); </insert>
-
测试
//增删改必需要提交事务 @Test public void addUser2(){ //1、获得SqlSession对象 SqlSession sqlSession= MyBatisUtil.getSqlSession(); //2、执行SQL //方式一:getMapper UserDao user=sqlSession.getMapper(UserDao.class); Map map=new HashMap<String,Object>(); map.put("userid",6); map.put("userName","hello"); map.put("password","yiiuco"); user.addUser2(map); //提交事务 sqlSession.commit(); //关闭SqlSession sqlSession.close(); }
2、update
-
Dao接口;
//修改用户 int updateUser2(Map<String,Object> map);
-
接口实现类(由原来的UserDaoImpl转变为一个Mapper.xml配置文件);
<update id="updateUser2" parameterType="map"> update mybatis.user set name=#{nicnuiname} where id=#{iewucid}; </update>
-
测试
//增删改必需要提交事务 @Test public void updateUser2(){ //1、获得SqlSession对象 SqlSession sqlSession= MyBatisUtil.getSqlSession(); //2、执行SQL //方式一:getMapper UserDao user=sqlSession.getMapper(UserDao.class); //用户如果有些参数是不用修改的,map就不用put Map map=new HashMap<String,Object>(); map.put("iewucid",6); map.put("nicnuiname","成龙"); user.updateUser2(map); //提交事务 sqlSession.commit(); //关闭SqlSession sqlSession.close(); }