1、万能的Map传值
假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!
map灵活度高,可以用自己定义的key,不过相对项目来说不是很规范,看情况使用。
Map传递参数,直接在sq|中取出key即可! [parameterType="map"]
对象传递参数,直接在sq|中取对象的属性即可! [parameterType="Object"]
只有一个基本类型参数的情况下,可以直接在sq|中取到! .
多个参数用Map,或者注解!
map写法例子:
//万能的map int addUser2(Map<String, Object> map);
<insert id = "addUser2" parameterType = "java.util.HashMap"> insert into mybatis.user(`id`, `pwd`) values (#{userId}, #{password}); </insert>
@Test public void addUserMap(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserDao userDao = sqlSession.getMapper(UserDao.class); Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", 6); map.put("password", "test123456"); int allen = userDao.addUser2(map); if(allen > 0){ System.out.println("新增成功"); sqlSession.commit(); } sqlSession.close(); }
2、模糊查询怎么写?
1. Java代码执行的时候,传递通配符%%
List<User> userList = userDao.getUserLike("%李%");
2.在sq|拼接中使用通配符!
<select id = "getUserLike" resultType = "com.allen.pojo.User" parameterType = "java.lang.String"> select * from mybatis.user where `name` like "%"#{name}"%"; </select>