当我们的实体类、或者数据库里的表、字段或者参数很多,这个时候考虑使用map
一、使用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传参也可以批量插入数据
MyBatis 批量插入/修改/删除数据(MySql)
二、使用map修改数据
当我们的实体类、或者数据库里的表、字段或者参数很多的时候,使用一般的实体类传参,就需要将所有的字段全部写入,显然太过于繁琐,这时候使用map传入你需要更改的字段就行
代码大致相似就不放代码了。。。
三、模糊查询
1.方式一:java代码执行的时候,传递通配符% %
List<User> likelist = mapper.getUserlike("%毛%");
2.方式二:在Mapper.xml中的sql拼接中使用通配符
select * from firend_mq.users where username like "%"#{value}"%"
实现结果:
总结:
- Map传递参数,直接写sql语句中取出即可 {parameterType=“map”}
优点可以在取参数#{value}的时候可以DIY,直接使用自己传入的key值 - 对象传递参数,直接在sql中取对象的属性即可 {parameterType=“Object”}
但是必须和实体类名字一致 - 只有一个基本类型参数的情况下,可以直接在sql中取到
- 多个参数用Map,或者注解
到此这篇关于MyBatis使用Map与模糊查询的文章就介绍到这了,更多相关MyBatis用Map与模糊查询内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!