java:框架:mybatis:查詢結果resultType返回值類型詳細介紹

  1. 一、返回一般數據類型
    比如要根據 id 屬性獲得數據庫中的某個字段值。

    mapper 接口:

    // 根據 id 獲得數據庫中的 username 字段的值
        String getEmpNameById(Integer id);


    SQL 映射文件:

     <!-- 
            指定 resultType 返回值類型時 String 類型的,
            string 在這裏是一個別名,代表的是 java.lang.String 
    
            對於引用數據類型,都是將大寫字母轉小寫,比如 HashMap 對應的別名是 'hashmap'
            基本數據類型考慮到重複的問題,會在其前面加上 '_',比如 byte 對應的別名是 '_byte'
        -->
        <select id="getEmpNameById" resultType="string">
            select username from t_employee where id = #{id}
        </select>


    二、返回 JavaBean 類型
    比如根據某個字段獲得數據庫中的信息,把查詢的結果信息封裝成某個 JavaBean 類型的數據。

    mapper 接口:

      // 根據 id 查詢信息,並把信息封裝成 Employee 對象
        Employee getEmpById(Integer id);

    SQL 映射文件: 

        <!-- 
            通過 resultType 指定查詢的結果是 Employee 類型的數據  
            只需要指定 resultType 的類型,MyBatis 會自動將查詢的結果映射成 JavaBean 中的屬性
        -->
        <select id="getEmpById" resultType="employee">
            select * from t_employee where id = #{id}
        </select>


    三、返回List類型
    有時候我們要查詢的數據不止一條,比如:模糊查詢,全表查詢等,這時候返回的數據可能不止是一條數據,對於多數據的處理可以存放在List集合中。

    mapper 接口:

      // 假如是全表查詢數據,將查詢的數據封裝成 Employee 類型的集合
        List<Employee> getAllEmps();


    SQL 映射文件:

    <!--
            注意這裏的 resultType 返回值類型是集合內存儲數據的類型,不是 'list'
        -->
        <select id="getAllEmps" resultType="employee">
            select * from t_employee
        </select>


    四、返回Map類型
    MyBatis 還支持將查詢的數據封裝成Map。

    1. 如果查詢的結果是一條,我們可以把查詢的數據以{表字段名, 對應的值}方式存入到Map中。

    mapper 接口:

      //  根據 id 查詢信息,並把結果信息封裝成 Map 
        Map<String, Object> getEmpAsMapById(Integer id);


    SQL 映射文件:

       

    <!-- 
            注意這裏的 resultType 返回值類型是 'map'
         -->
        <select id="getEmpAsMapById" resultType="map">
            select * from t_employee where id = #{id}
        </select>


    下面把查詢的結果數據貼出來供大家參考: 
     
    2. 如果查詢的結果是多條數據,我們也可以把查詢的數據以{表中某一字段名, JavaBean}方式來封裝成Map。

    mapper 接口:

       

     // 查詢所有員工的信息,把數據庫中的 'id' 字段作爲 key,對應的 value 封裝成 Employee 對象
        // @MapKey 中的值表示用數據庫中的哪個字段名作 key
        @MapKey("id")
        Map<Integer, Employee> getAllEmpsAsMap();


    SQL 映射文件:

    <!--
            注意 resultType 返回值類型,不再是 'map',而是 Map 的 value 對應的 JavaBean 類型
        -->
        <select id="getAllEmpsAsMap" resultType="employee">
            select * from t_employee
        </select>


    下面是查詢的結果 (只截取了一部分): 


    MyBatis 允許查詢的結果封裝成Map,這種機制是極好的。

    五、擴展
    擴展. 上面返回結果的形式都是基於查詢 (select) 的,其實對於增刪改的操作也可以返回一定類型的數據,比如Boolean,Integer等。

    總結. 這篇博文主要介紹了在開發中常用的幾種數據返回值類型,希望能夠爲你提供幫助。
     

發佈了268 篇原創文章 · 獲贊 126 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章