摘要
本文针对XML配置和注解配置说明resultType用法
正文
下面的例子都用过查询User类实现
查询单条记录返回对象
- XML配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.UserMapper">
<!--resultType直接写对象的全类名 -->
<select id="findById" resultType="com.example.User">
select * from user where id=#{id}
</select>
</mapper>
- 注解配置
public interface UserMapper{
@Select("select * from user where id=#{id}")
User findById(Long id);
}
查询多条记录返回List
- XML配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.UserMapper">
<!--resultType直接写对象的全类名 -->
<select id="findList" resultType="com.example.User">
select * from user
</select>
</mapper>
- 注解配置
public interface UserMapper{
@Select("select * from user")
List<User> findList();
}
查询单条记录返回Map
在没有查询结果没有实体类的情况,我会使用这种方式。
- XML配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.UserMapper">
<!--resultType直接写对象的全类名 -->
<select id="findById" resultType="map">
select * from user where id=#{id}
</select>
</mapper>
- 注解配置
public interface UserMapper{
@Select("select * from user where id=#{id}")
Map<String,Object> findById(Long id);
}
查询多条记录返回Map
对部分列需要处理时,我会使用这种方式
- XML配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.UserMapper">
<!--resultType直接写对象的全类名 -->
<select id="findMap" resultType="com.example.User">
select * from user
</select>
</mapper>
public interface UserMapper{
// 通过@MapKey注解指定作为key的列名
@MapKey("id")
Map<Long,User> findMap();
}
- 注解配置
public interface UserMapper{
@MapKey("id")
@Select("select * from user")
Map<Long,User> findMap();
}