Mybatis各种查询接口使用详解
学习使我快乐T 人气:0一、查询一个实体类对象
①创建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(); }
加载全部内容