美文网首页
MyBaits查询结果返回类型resultType详解

MyBaits查询结果返回类型resultType详解

作者: 风静花犹落 | 来源:发表于2022-04-26 15:27 被阅读0次

一、单个对象

基本类型

public Long getCount(@Param("userName") String userName);

直接返回对应的基本类型,如:Long

<select id="getCount" resultType="java.lang.Long"></select>

实体对象

public User getOneUser(@Param("userName") String userName);

直接返回对应的实体对象,如:User

<select id="getOneUser" resultType="com.jayknoxqu.entity.User"></select>

二、Collection集合

List<E>、 Set<E>

public List<User> getUserList(@Param("userName") String userName);

返回对应的集合元素"E"的类型

<select id="getUserList" resultType="com.jayknoxqu.entity.User"></select>

三、Map集合

单条Map<K,V>

public Map<String,String> getOneUser(@Param("userName") String userName);

直接返回Map本身

<select id="getOneUser" resultType="java.util.Map"></select>

多条Map<K,V>

需要通过@MapKey指定Map<K,V>中的"K","K"为"V"对象的属性名,如果不指定则会抛出异常org.apache.ibatis.exceptions.TooManyResultsException

@MapKey(value="id")
public Map<Long,User> getUserMap(@Param("userName") String userName);

返回对应的Map<K,V>集合中"V"的类型

<select id="getUserMap" resultType="com.jayknoxqu.entity.User"></select>

多条Map<K, List<K,V> >

SysAreaDao.java

@MapKey(value = "pid")
public Map<Integer, Map<Integer, List<Integer, SysArea>> getSysArea();

SysAreaMapper.xml

<resultMap id="SysAreaResultMap" type="java.util.Map">
    <id column="pid" property="pid"/>
    <collection property="children" javaType="java.util.ArrayList" ofType="com.jayknoxqu.entity.SysArea">
        <id column="id" property="id"/>
        <result column="pid" property="pid"/>
        <result column="name" property="name"/>
    </collection>
</resultMap>

<select id="getSysArea" resultMap="SysAreaResultMap">
    SELECT * FROM sys_area
</select>

相关文章

网友评论

      本文标题:MyBaits查询结果返回类型resultType详解

      本文链接:https://www.haomeiwen.com/subject/uethyrtx.html