- MyBatis的各种查询功能:
- 1、若查询出的数据只有一条
- a>可以通过实体类对象接收
- b>可以通过list集合接收
- c>可以通过map集合接收
- 结果:{password=123456, sex=男, id=3, age=23, email=12345@qq.com, username=admin}
- 2、若查询出的数据有多条
- a>可以通过实体类类型的list集合接收
- b>可以通过map类型的list集合接收
- c>可以在mapper接口的方法上添加@MapKey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中
- 注意:一定不能通过实体类对象接收,此时会抛异常TooManyResultsException
- MyBatis中设置了默认的类型别名
- java.lang.Integer–>int,integer
- int–>_int,_integer
- Map–>map
- String–>string
模糊查询
@Test
public void testGetUserByLike(){
SqlSession sqlSession= SqlSessionUtils.getSqlSession();
SQLMapper mapper=sqlSession.getMapper(SQLMapper.class);
List<User> list=mapper.getUserByLike("a");
System.out.println(list);
}
<select id="getUserByLike" resultType="com.atguigu.mybatis.pojo.User">
select *from t_user where username like '%${username}%'
</select>
List<User> getUserByLike(@Param("username") String username) ;
批量删除
<delete id="deleteMore">
delete from t_user where id in (${ids})
</delete>
int deleteMore(@Param("ids") String ids);
动态设置表名
List<User> getAllUser(@Param("tableName") String tableName);
<!--List<User> getAllUser(@Param("tableName") String tableName);-->
<select id="getAllUser" resultType="User">
select * from ${tableName}
</select>