Mybatis各种查询接口使用详解
目录
- 一、查询一个实体类对象
- 二、查询一个list集合
- 三、查询单个数据
- 四、查询一个数据为map集合
- 五、查询多条数据为map集合
一、查询一个实体类对象
①创建SelectMapper接口
若sql语句查询的结果为多条时,一定不能以实现类类型作为方法的返回值
否则会抛出异常TooManyResultsException
若sql语句查询的结果为1条时,此时可以使用实体类类型或list集合类型作为方法的返回值
/** * 根据id查询用户信息 * @param id * @return */ User getUserById(@Param("id") Integer id);
②创建SelectMapper配置文件
<!-- User getUserById(@Param("id") Integer id);--> <select id="getUserById" resultType="User"> select * from t_user where id = #{id} </select>
③创建测试类
@Test public void testGetUserById(){ SqlSession sqlSession = SqlSessionUtil.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); User user = mapper.getUserById(2); System.out.println(user); sqlSession.close(); }
二、查询一个list集合
①创建SelectMapper接口
/** * 查询所有的用户信息 * @return */ List<User> getAllUser();
②创建SelectMapper配置文件
<!-- List<User> getAllUser();--> <select id="getAllUser" resultType="User"> select * from t_user </select>
③创建测试类
@Test public void testGetAllUser(){ SqlSession sqlSession = SqlSessionUtil.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); List<User> allUser = mapper.getAllUser(); allUser.forEach(System.out::println); sqlSession.close(); }
三、查询单个数据
①创建SelectMapper接口
/** * 查询用户的总记录数 * @return */ Integer getCount();
②创建SelectMapper配置文件
在MyBatis中,对于Java中常用的类型都设置了类型别名
例如: java.lang.Integer -> int/integer
例如: int -> _int/_integer
例如: Map -> map,
例如: List -> list
<!-- Integer getCount();--> <!-- <select id="getCount" resultType="java.lang.Integer">--> <select id="getCount" resultType="Integer"> select count(*) from t_user </select>
③创建测试类
@Test public void testGetCount(){ SqlSession sqlSession = SqlSessionUtil.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); Integer count = mapper.getCount(); System.out.println(count); sqlSession.close(); }
四、查询一个数据为map集合
①创建SelectMapper接口
/** * 根据用户id查询用户信息为map集合 * @param id * @return */ Map<String, Object> getUserToMap(@Param("id") int id);
②创建SelectMapper配置文件
<!--Map<String, Object> getUserToMap(@Param("id") int id);--> <!--结果: {password=123456, sex=男 , id=1, age=23, username=admin}--> <select id="getUserToMap" resultType="map"> select * from t_user where id = #{id} </select>
③创建测试类
@Test public void testGetUserToMap(){ SqlSession sqlSession = SqlSessionUtil.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); Map<String, Object> userToMap = mapper.getUserToMap(2); System.out.println(userToMap); sqlSession.close(); }
五、查询多条数据为map集合
①创建SelectMapper接口
方式一:
/** * 查询所有用户信息为map集合 * @return * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此 时可以将这些map放在一个list集合中获取 */ // List<Map<String, Object>> getAllUserToMap();
方式二:
/** * 查询所有用户信息为map集合 * @return * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并 且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的 map集合 */ @MapKey("id") Map<String, Object> getAllUserToMap();
②创建SelectMapper配置文件
<!--Map<String, Object> getAllUserToMap();--> <select id="getAllUserToMap" resultType="map"> select * from t_user </select>
③创建测试类
@Test public void testGetAllUserToMap(){ SqlSession sqlSession = SqlSessionUtil.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); // List<Map<String, Object>> allUserToMap = mapper.getAllUserToMap(); // allUserToMap.forEach(System.out::println); Map<String, Object> allUserToMap = mapper.getAllUserToMap(); System.out.println(allUserToMap); sqlSession.close(); }
到此这篇关于Mybatis各种查询接口使用详解的文章就介绍到这了,更多相关Mybatis查询接口内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)