mybatis学习:五

来源:互联网 发布:碳青霉烯 知乎 编辑:程序博客网 时间:2024/05/16 05:19

本小节描述mybatis中方法的返回值如何处理

a、增删改的方法返回值为int类型,无需指定

int save(Book b);
<!-- 增删改的方法返回值为int类型,无需指定 -->    <insert id="save" parameterType="Book">        insert into Book(bookName,bookAuthor,BookPrice,bookInfo)           values(#{bookName},#{bookAuthor},#{bookPrice},#{bookInfo})    </insert>

执行查询:
b、若为一个值,直接通过resultType指定返回值的类型

String selectAuthorByName(String name);
    <!-- 若为一个值,直接通过resultType指定返回值的类型 -->    <select id="selectAuthorByName" resultType="String">        SELECT bookAuthor FROM book WHERE  bookName= #{name}    </select>

c、若为一行数据,直接指定为该类,返回一个对象

Book loadById(int id);
    <!-- 若为一行数据,直接指定为该类,返回一个对象 -->    <select id="loadById" resultType="Book" parameterType="int">        select * from book where bookId=#{name}    </select>   

d、若为多行数据,直接指定为该类,返回一个List

List<Book> loadAll();
    <!-- 若为多行数据,直接指定为该类,返回一个List -->    <select id="loadAll" resultType="Book">        select * from Book    </select>

e、若为半行数据或者多个半行数据,直接指定为该类,查询到的列有值,未查询到的列没有值

List<Book> loadAllPrice();
    <!-- 若为半行数据或者多个半行数据,    直接指定为该类,查询到的列有值,未查询到的列没有值     半行返回值为一个对象,多个半行返回值为List-->    <select id="loadAllPrice" resultType="Book">        select bookName,bookPrice from Book    </select>

f、若查询的结果不方便使用实体对象来保存,则使用resultMap
说明:可以不定义,这样column的值和property的值是对应的

    <resultMap type="java.util.Map" id="studentResultMap">        <result column="id" property="ids"/>        <result column="name" property="names"/>        <result column="phone" property="phones"/>    </resultMap>

在标签中指定

<select id="selectStudentMap" resultMap="studentResultMap">    select * from student</select>

返回结果为一个map或者map构成的list,将column中的值插入到map中,其key由property来指定