java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Mybatis指定sql返回值类型

Mybatis实现指定sql返回值类型

作者:姓蔡小朋友

文章介绍了Mybatis中处理不同返回值情况的方法,包括返回值只有一个和有多个的情况,对于返回值只有一个,可以直接返回该值;对于多个返回值,可以使用POJO对象、List集合或Map集合进行封装,每种方法都有其适用的场景

一、返回值只有一个的情况

方法一:返回值只有一个

//更新用户信息
int update(Student stu);
<!--按主键删除学生
	int update(Student stu);
	下面sql的返回值是执行成功的条数。
	update,insert,delete语句可以不写resultType
-->
    <update id="update" parameterType="com.user.pojo.Student" >
        update student set name=#{name} ,email=#{email} ,age=#{age}
        where id = #{id}
    </update>

但如果sql的返回值是多个,而Mybatis返回值只能返回一个值,所以必须把这多个返回值进行封装。

二、返回值有多个的情况

方法一:使用POJO对象封装结果,POJO对象作为返回值

//根据用户主键查用户,注意成员变量名和数据库表的列名要相同。
Student getById(int id);
<!--按主键id查询学生信息
    Student getById(Integer id);
    下面sql结果返回id,name,email,age,我们用Student对象封装并返回这个对象,返回值和对象的成员变量一一对应,底层调用对象的set方法给对象的成员变量赋值。
    resultType="com.user.pojo.Student"返回值必须写包的全限定类名。
-->
<select id="getById" parameterType="Integer" resultType="com.user.pojo.Student">
    Select id,name,email,age
    from Student
    where id = #{id}
</select>

如果返回值是多个,且这些返回值没有适合的POJO对象来封装,那么无法使用POJO对象作为返回值。(重要的是返回值之间没有联系,没有对象能封装他们)

方法二:List集合作为返回值

//查询全部用户信息
List<User> getAll();
<!--
返回值是User对象封装的,User对象中封装了id,username,birthday,sex,address属性,返回多行,一行就是一个User对象,所有User对象都添加到一个List集合中返回。
其中List底层调用add方法将每个POJO对象加入到List集合中,POJO对象底层调用set方法给对象的成员变量赋值。
-->
<select id="getAll" resultType="user">
        select id,username,birthday,sex,address
        from users;
</select>

方法三:map集合作为返回值

1.map封装返回值是一行

//根据主键查用户对象
Map<String,Object> getReturnMapOne(int id);
<!--返回值类型是map,其中key是列名,value是查询结果-->
<select id="getReturnMapOne" resultType="map" parameterType="int">
    select id ,username ,sex ,address ,birthday 
    from users
    where id=#{id}
</select>

2.map封装返回之是多行

适用于查询结果有多行值,单独每一行的值不能用POJO对象封装。

//使用map封装单独一行,返回多个map的集合,即为多行--->List<Map<String,Object>>,每个map是查询到的一行数据结果,多行数据结果用list封装
List<Map<String,Object>> getReturnMap();
<!--这里的返回值类型是泛型的类型-->
<select id="getReturnMap" resultType="map" >
    select id ,username ,sex ,address ,birthday 
    from users
</select>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文