1.假设,我们的实体类,或者数据库表,字段的参数过多,我们应当考虑用Map
//万能的map
int addUer1(Map<String,Object> map);
<!--对象中的属性,可以直接取出来-->
<insert id="addUser1" parameterType="map">
insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
```java
@Test
public void addUer1() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
HashMap<String, Object> map = new HashMap<>();
map.put("id",5);
map.put("name","张无忌");
map.put("pwd","2222");
mapper.addUer1(map);
sqlSession.commit();
sqlSession.close();
}
2.mybatis中的模糊查询有两种方式
第一种:
UserMapper.xml里面不写通配符
<select id="getUserLike" resultType="com.sophy.pojo.User">
select * from mybatis.user where name like #{value}
</select>
在测试类里面拼接
@Test
public void getUserLike(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userLike = mapper.getUserLike("%张%");
for (User user : userLike) {
System.out.println(user);
}
sqlSession.close();
}
第二种:
UserMapper.xml里面写通配符,这样可以防止SQL注入,建议使用
<select id="getUserLike" resultType="com.sophy.pojo.User">
select * from mybatis.user where name like "%"#{value}"%"
</select>
测试类里面直接写查询的条件字符
@Test
public void getUserLike(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userLike = mapper.getUserLike("张");
for (User user : userLike) {
System.out.println(user);
}
sqlSession.close();
}