当我们的实体类、或者数据库里的表、字段或者参数很多,这个时候考虑使用map
1.编写Dao接口/Mapper层 使用Map做参数
//Dao接口/Mapper层 使用Map传参 int addUser2(Map<String,Object> map);
2.编写Mapper.xml中的sql语句
<!-- 传递map的key--> <insert id="addUser2" parameterType="map"> insert into firend_mq.users (id,username,password) value (#{userid},#{name},#{pwd}) </insert>
3.编写测试类
//使用map传参添加插入 @Test public void addUser2(){ SqlSession sqlSession = Mybatisutil.getSqlSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); Map<String, Object> map = new HashMap<String, Object>(); map.put("userid",4); map.put("name","好人"); map.put("pwd",1111111); mapper.addUser2(map); sqlSession.commit(); sqlSession.close(); }
使用Map传参也可以批量插入数据
当我们的实体类、或者数据库里的表、字段或者参数很多的时候,使用一般的实体类传参,就需要将所有的字段全部写入,显然太过于繁琐,这时候使用map传入你需要更改的字段就行
代码大致相似就不放代码了。。。
1.方式一:java代码执行的时候,传递通配符% %
List<User> likelist = mapper.getUserlike("%毛%");
2.方式二:在Mapper.xml中的sql拼接中使用通配符
select * from firend_mq.users where username like "%"#{value}"%"
实现结果: