Mybatis-mapper文件配置說明

mybatis官方文檔地址html

----------------------------------------------------------------------------------------sql

問:<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">數據庫

答:定義mapper標籤編程

 

問:<mapper namespace="com.yinyi.pojo">mybatis

答:app

  1. 在MyBatis中,Mapper中的namespace用於綁定Dao接口的,即面向接口編程。性能

    它的好處在於當使用了namespace以後就能夠不用寫接口實現類,業務邏輯會直接經過這個綁定尋找到相對應的SQL語句進行對應的數據處理spa

  2. 詳解namespacexml

 

問:<select id="listCategory" resultType="Category">htm

答:

  1. id: listCategory 進行標示以供後續代碼調用這個select
  2. resultType="Category"表示返回的數據和Category關聯起來,這裏本應該使用的是 com.yinyi.pojo.Category, 可是由於上一步配置了別名,因此直接使用Category就好了

 

問:<insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id">

答:

  1. 若是你的數據庫支持自動生成主鍵的字段(好比 MySQL 和 SQL Server),那麼你能夠設置 useGeneratedKeys=」true」,而後再把 keyProperty 設置到目標屬性上就OK了。

問:<resultMap type="Category" id="categoryBean">
            <id column="cid" property="id" />
            <result column="cname" property="name" />
     
            <!-- 一對多的關係 -->
            <!-- property: 指的是集合屬性的值, ofType:指的是集合中元素的類型 -->
            <collection property="products" ofType="Product">
                <id column="pid" property="id" />
                <result column="pname" property="name" />
                <result column="price" property="price" />
            </collection>
        </resultMap>

答:resultMap的映射方法

 

 

問:resultMap的相關標籤介紹

答:

resultMap

  • constructor - 用於在實例化類時,注入結果到構造方法中
    • idArg - ID 參數;標記出做爲 ID 的結果能夠幫助提升總體性能
    • arg - 將被注入到構造方法的一個普通結果
  • id – 一個 ID 結果;標記出做爲 ID 的結果能夠幫助提升總體性能
  • result – 注入到字段或 JavaBean 屬性的普通結果
  • association – 一個複雜類型的關聯;許多結果將包裝成這種類型
    • 嵌套結果映射 – 關聯能夠指定爲一個 resultMap 元素,或者引用一個
  • collection – 一個複雜類型的集合
    • 嵌套結果映射 – 集合能夠指定爲一個 resultMap 元素,或者引用一個
  • discriminator – 使用結果值來決定使用哪一個 resultMap
    • case – 基於某些值的結果映射
      • 嵌套結果映射 – 一個 case 也是一個映射它自己的結果,所以能夠包含不少相 同的元素,或者它能夠參照一個外部的 resultMap。

 

問: @Select(" select * from category_ limit #{start},#{count}")
    public List<Category> listByPage(@Param("start") int start, @Param("count")int count);

答:分頁設置

相關文章
相關標籤/搜索