MyBatis的各种查询功能:
(1)若查询出的数据只有一条
- 可以通过实体类对象接收
- 可以通过list集合接收
- 可以通过map集合接收
(2)若查询出的数据有多条
- 可以通过实体类类型的list集合接收
- 可以通过map类型的list集合接收
- 可以在mapper接口的方法上添加@MapKey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中
1、查询一个实体类对象
Mapper接口:
//根据用户id查询用户信息
User getUserById(@Param("id") int id);
Mapper映射文件:
<!--User getUserById(@Param("id") int id);-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
2、查询一个list集合
Mapper接口:
//查询所有用户信息
List<User> getUserList();
Mapper映射文件:
<!--List<User> getUserList();-->
<select id="getUserList" resultType="User">
select * from t_user
</select>
3、查询单个数据
Mapper接口:
//查询用户的总记录数
int getCount();
Mapper映射文件:
<!--int getCount();-->
<select id="getCount" resultType="_integer">
select count(id) from t_user
</select>
4、查询一条数据为map集合
Mapper接口:
//根据用户id查询用户信息为map集合
Map<String, Object> getUserToMap(@Param("id") int id);
Mapper映射文件:
<!--Map<String, Object> getUserToMap(@Param("id") int id);-->
<select id="getUserToMap" resultType="map">
select * from t_user where id = #{id}
</select>
5、查询多条数据为map集合
Mapper接口:
//查询所有用户信息为map集合
List<Map<String, Object>> getAllUserToMap();
Mapper映射文件:
<!--Map<String, Object> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
获取自增的主键:
useGeneratedKeys
设置使用自增的主键,
keyProperty
:因为增删改有统一的返回值是受影响的行数,因此只能将获取的自增的主键放在传输的参数user对象的某个属性中
Mapper接口:
int insertUser(User user);
Mapper映射文件:
<!--int insertUser(User user);-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
insert into t_user values(null,#{username},#{password},#{age},#{sex})
</insert>