Map的使用
假设我们的实体类或者数据表中的字段或者参数过多,我们应当使用Map
- 在之前例子的接口处添加方法
//测试万能map
int adduser1(Map<String, Object> map);
- Usermapper.xml文件中添加
<!-- userid,username,password是map中的key-->
<insert id="adduser1" parameterType="map">
insert into mybatis.user(id,name,pwd) values (#{userid},#{username},#{password})
</insert>
注意此时的参数类型是map,要与接口中的保持一致
- 测试类
@Test
public void adduser1(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("userid",4);
map.put("username","werad");
map.put("password","1234141");
mapper.adduser1(map);
sqlSession.commit();
sqlSession.close();
}
模糊查询
- java代码执行时传递通配符 如下:
List<User> user=mapper.getUser("%王%");
进行测试
接口中加入
//模糊查询
List<User> getUser(String name);
Usermapper.xml中加入
<select id="getUser" resultType="com.wang.pojo.User">
select * from mybatis.user where name like #{name}
</select>
测试类
@Test
public void getUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
List<User> user=mapper.getUser("%王%");
System.out.println(user);
sqlSession.close();
}
- 在sql中使用通配符
<select id="getUser" resultType="com.wang.pojo.User">
select * from mybatis.user where name like "%"#{name}"%"
</select>
测试类
@Test
public void getUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
List<User> user=mapper.getUser("王");
System.out.println(user);
sqlSession.close();
}