本文主要是介绍Mybatis07-Mybatis的各种查询功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Mybatis07-Mybatis的各种查询功能
- 1、查询一个实体对象
- 1.1、mapper接口中的方法
- 1.2、mapper接口映射文件
- 1.3、测试方法及其对应输出
- 2、查询一个List集合
- 2.1、mapper接口中的方法
- 2.2、mapper接口映射文件
- 2.3、测试方法及其对应输出
- 3、查询单个数据
- 3.1、mapper接口中的方法
- 3.2、mapper接口映射文件
- 3.3、测试方法及其对应输出
- 4、查询一条数据为map集合
- 4.1、mapper接口中的方法
- 4.2、mapper接口映射文件
- 4.3、测试方法及其对应输出
- 5、查询多条数据为map集合
- 5.1、mapper接口中的方法
- 5.2、mapper接口映射文件
- 5.3、测试方法及其对应输出
- 6、总结
- 6.1、若查询出的数据只有一条
- 6.2、若查询出的数据有多条
- 6.3、Mybatis中的默认类型别名
1、查询一个实体对象
1.1、mapper接口中的方法
/*** 根据id查询用户信息*/
//User getUserById(@Param("id") Integer id);
List<User> getUserById(@Param("id") Integer id);
1.2、mapper接口映射文件
<!-- User getUserById(@Param("id") Integer id); -->
<select id="getUserById" resultType="User">select * from mybatis.user where id = #{id}
</select>
1.3、测试方法及其对应输出
- 测试方法
@Test
public void testGetUserById() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserById(3));
}
- 结果
2、查询一个List集合
2.1、mapper接口中的方法
/*** 查询所有用户信息*/
List<User> getAllUser();
2.2、mapper接口映射文件
<!-- List<User> getAllUser(); -->
<select id="getAllUser" resultType="User">select * from mybatis.user
</select>
2.3、测试方法及其对应输出
@Test
public void testGetAllUser() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getAllUser());
}
3、查询单个数据
3.1、mapper接口中的方法
/*** 查询用户的总记录数*/
Integer getUserCount();
3.2、mapper接口映射文件
<!-- Integer getUserCount(); -->
<!-- <select id="getUserCount" resultType="int">-->
<!-- <select id="getUserCount" resultType="java.lang.Integer">-->
<!-- <select id="getUserCount" resultType="Int">-->
<select id="getUserCount" resultType="Integer">select count(*) from mybatis.user
</select>
3.3、测试方法及其对应输出
- 测试代码
@Test
public void testGetUserCount() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserCount());
}
- 结果
4、查询一条数据为map集合
4.1、mapper接口中的方法
/*** 根据id查询用户信息为一个map集合*/Map<String, Object> getUserByIdToMap(@Param("id") Integer id);
4.2、mapper接口映射文件
<!-- Map<String, Object> getUserByIdToMap(@Param("id") Integer id); -->
<select id="getUserByIdToMap" resultType="map">select * from mybatis.user where id = #{id}
</select>
4.3、测试方法及其对应输出
- 测试代码
@Test
public void testGetUserByIdToMap() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserByIdToMap(3));
}
- 结果
5、查询多条数据为map集合
5.1、mapper接口中的方法
/*** 查询所有用户信息为map集合*/
//List<Map<String, Object>> getAllUserByIdToMap();
@MapKey("id")
Map<String, Object> getAllUserByIdToMap();
5.2、mapper接口映射文件
<!-- Map<String, Object> getAllUserByIdToMap(); -->
<select id="getAllUserByIdToMap" resultType="map">select * from mybatis.user
</select>
5.3、测试方法及其对应输出
- 测试代码
@Test
public void testGetAllUserByIdToMap() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getAllUserByIdToMap());
}
- 结果
6、总结
6.1、若查询出的数据只有一条
- 可以通过实体类对象接收
- 可以通过List集合接收
- 可以通过map集合接收
- map集合接收的结果:{password=123, sex=男, id=3, age=23, username=sweet}
6.2、若查询出的数据有多条
- 可以通过实体类类型的list集合接收
- 可以通过map类型的list集合接收
- 可以在mapper接口的方法上添加@MapKey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中
- 注意:一定不能通过实体类对象接收,此时会抛出异常TooManyResultsException
6.3、Mybatis中的默认类型别名
Alias | Mapped Type |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
示例:
<!-- Integer getUserCount(); -->
<!-- <select id="getUserCount" resultType="int">-->
<!-- <select id="getUserCount" resultType="java.lang.Integer">-->
<!-- <select id="getUserCount" resultType="Int">-->
<select id="getUserCount" resultType="Integer">select count(*) from mybatis.user
</select>
这篇关于Mybatis07-Mybatis的各种查询功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!