Mybatis各种查询接口使用详解
一、查询一个实体类对象
①创建SelectMapper接口
若sql语句查询的结果为多条时,一定不能以实现类类型作为方法的返回值
否则会抛出异常TooManyResultsException
若sql语句查询的结果为1条时,此时可以使用实体类类型或list集合类型作为方法的返回值
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接口
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接口
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接口
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接口
方式一:
// List<Map<String, Object>> getAllUserToMap();
方式二:
@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查询接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341