视频教程链接:https://www.bilibili.com/video/BV1VP4y1c7j7?p=34&spm_id_from=pageDriver
接口类综合代码:
public interface SelectMapper {
/**
* 根据id查询用户信息
*/
User getUserById(@Param("id") Integer id);
/**
* 查询所有用户信息
*/
List<User> getAllUser();
/**
* 查询用户信息的总记录数
*/
Integer getCount();
/**
* 根据id查询用户信息为一个map集合
*/
Map<String, Object> getUserByIdToMap(Integer id);
/**
* 查询所有用户信息为map集合
*/
// List<Map<String, Object>> getAllUserToMap();
@MapKey("id")
Map<String, Object> getAllUserToMap();
}
1、查询一个实体类对象
SelectMapper接口:
public interface SelectMapper {
/**
* 根据id查询用户信息
*/
User getUserById(@Param("id") Integer id);
}
配置文件:
<!-- User getUserById(@Param("id") Integer id);-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
测试类:
/**
* MyBatis的各种查询功能:
* 1。 若查询出的数据只有一条,可以通过实体类对象 / list集合 / map集合 来接收
* 2。 若查询处的数据有多条,一定不能通过实体类对象来接收,此时会抛出TooManyResultsException
*/
@Test
public void testGetUserById(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
User userById = mapper.getUserById(4);
System.out.println(userById);
}
2、查询一个list集合
SelectMapper接口:
public interface SelectMapper {
/**
* 查询所有用户信息
*/
List<User> getAllUser();
}
配置文件:
<!-- List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
select * from t_user
</select>
测试类:
/**
* MyBatis的各种查询功能:
* 1。 若查询出的数据只有一条,可以通过实体类对象 / list集合 / map集合 来接收
* 2。 若查询处的数据有多条,一定不能通过实体类对象来接收,此时会抛出TooManyResultsException
*/
@Test
public void testGetUserById(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
List<User> allUser = mapper.getAllUser();
allUser.forEach(user -> System.out.println(user));
}
3、查询单个数据
SelectMapper接口:
public interface SelectMapper {
/**
* 查询用户信息的总记录数
*/
Integer getCount();
}
配置文件:
<!-- Integer getCount();-->
<!-- integer写大小写都可以,写 Integer/integer/_int/_integer 都可以,都是java.lang.Integer的别名-->
<select id="getCount" resultType="java.lang.Integer">
select count(*) from t_user
</select>
测试类:
/**
* 获取记录数
*
* MyBatis中设置了默认的类型别名
* Java.lang.Integer -> int, integer
* int -> _int, _integer
* Map -> map
* List -> list
*/
@Test
public void testGetCount(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
System.out.println(mapper.getCount());
}
常用类型别名
4、查询一条数据为map集合
SelectMapper接口:
public interface SelectMapper {
/**
* 根据id查询用户信息为一个map集合
*/
Map<String, Object> getUserByIdToMap(Integer id);
}
配置文件:
<!-- Map<String, Object> getUserByIdToMap(Integer id);-->
<select id="getUserByIdToMap" resultType="map">
select * from t_user where id = #{id}
</select>
测试类:
/**
* 如果没有实体类对象,就把它映射成map集合
* 从数据库中查询数据,将其映射为map集合
* 例如把它传到网页端,就映射成json对象,所以转成map很常用
*
* 以字段为键
*/
@Test
public void testgetUserByIdToMap(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
System.out.println(mapper.getUserByIdToMap(4));
}
查询多条数据为map集合
SelectMapper接口:
public interface SelectMapper {
/**
* 查询所有用户信息为map集合,每一条记录是一个map
*/
//方式一:
// List<Map<String, Object>> getAllUserToMap();
//方式二:
@MapKey("id")
Map<String, Object> getAllUserToMap();
}
配置文件:
<!-- Map<String, Object> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
测试类: