map:
map传递参数,直接在sql中取出key即可 【parameterType="map"】
对象传递参数,直接在sql中去对象的属性即可 【com.Li.pojo.User】
只有一个基本参数类型的情况下,可以直接在sql中取到,也就不用写参数
User addUser2(Map<String,Object> map);//接口的代码
<insert id="addUser2" parameterType="map">
insert into mybatis.user(id, pwd) values (#{userid},#{password});
</insert>-->
@Test
public void addUser2(){//Test的代码
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<String, Object>();
map.put("userid", 5);
map.put("username", "hello");
map.put("password", "2222333");
mapper.addUser2(map);
//提交事务
sqlSession.commit();
sqlSession.close();
}
模糊查询:也是在对应的文件写入代码
List<User> getUserLike(String value);
<select id="getUserLike" resultType="com.Li.pojo.User">
select * from mybatis.user where name like #{value}
</select>
@Test
public void getUserLike(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserLike("%李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
此时我们在user插入一个李五
结果是:
查询成功!
为了防止sql注入,不要这样拼接
这个接口里面的参数
List<User> getUserLike(String value);
对应着你sql语句的
select * from mybatis.user where name like #{value}
里面有#{value},所以需要一个String value。