MyBatis學習(四)XML配置文件之SQL映射的XML文件

SQL映射文件經常使用的元素:

  

1.select

  查詢語句是MyBatis最經常使用的語句之一。html

  執行簡單查詢的select元素是很是簡單的:數據庫

 

<select id=」selectUser」 parameterType=」int」 resultType=」hashmap」>
    SELECT * FROM PERSON WHERE ID = #{id}
</select>

 

 

 

  這個語句被稱做selectUser,接受一個int類型的參數,返回的一個HashMap類型的對象。dom

  #{id}告訴MyBatis建立一個預處理參數,至關於JDBC中的"?"。測試

  接下里介紹select元素的屬性:spa

  

   

 

3.insert、update、delete

 介紹這三種元素的屬性:code

 

示例:htm

<insert id="insertUser" parameterType="com.dj.domain.User">
insert into User (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email})
</insert>
<update id="updateUser" parameterType="com.dj.domain.User">
update User set
username = #{username},
password = #{password},
email = #{email},
bio = #{bio}
where id = #{id}
</update>
<delete id="deleteUser」 parameterType="int">
delete from User where id = #{id}
</delete>

 

 

 

  

  如前所述,插入語句有一點多,它有一些屬性和子元素用來處理主鍵的生成。首先,若是你的數據庫支持自動生成主鍵的字段(好比 MySQL 和 SQL Server 數據庫),那麼你能夠設置 useGeneratedKeys=」true」,並且設置 keyProperty 到你已經作好的目標屬性上。例如,若是上面的 Author 表已經對 id 使用了自動生成的列類型,那麼語句能夠修改成對象

 

<insert id="insertUser" parameterType="com.dj.domain.User" 
       useGenerateKeys="true" keyProperty="id">
insert into User (id,username,password,email,bio)
values (#{id},#{username},#{password},#{email})
</insert>

 

 

 

  MyBatis對於不支持自動生成類型的數據庫(如Oracle)或可能不支持自動生成主鍵的jdbc驅動來講,有另一種方法來生成主鍵。blog

 

  <insert id="insertUser" parameterType="com.dj.domain.User">
        <selectKey keyProperty="id" resultType="int" order="BEFORE">
            select SEQUENCE_T_USER.nextval as id from dual
        </selectKey>
    insert into User (id,username,password,email,bio)
    values (#{id},#{username},#{password},#{email})
    </insert>

 

 

 

  select元素先運行,User的id會被設置,而後插入語句被調用。開發

  selectKey 元素描述以下:
  

  parameterType能夠設置成基本數據類型和複雜類型,例如一個User類型。

 

 4.resultMap

  resultMap是MyBatis最重要最強大的元素。它的做用就是告訴MyBatis將從結果集中取出的數據轉換成開發者所須要的對象。

  第一種狀況,當你遇到查詢到的數據的列和須要返回的對象的屬性不一致時,可使用resultMap進行處理。

  第二種狀況,進行多表查詢時,返回的對象關聯到另外一個對象,這時候簡單的映射已經不能解決問題了,必須使用resultMap元素來完成關聯映射。

 

  接下來咱們對resultMap進行一個簡單的測試http://www.cnblogs.com/dj-blog/p/7563037.html

相關文章
相關標籤/搜索