Mybatis基礎知識點梳理

Mybatis:一個基於Java的持久層框架

本文基於Spring對Mybatis整合後的基礎上梳理。

相關資源間的關係

在這裏插入圖片描述

  • Mybatis配置文件(整合後在Spring配置文件裏)
    1.Mybatis底層要操作數據庫,所以要在此配置數據源。
    2.通過該配置文件,Mybatis要找到對應的映射文件,所以在此要配置映射文件的路徑

  • Mapper映射文件
    1.映射文件實際就是接口類的實現,所以要指明這個映射文件所對應的接口類

    <mapper namespace="dao.EmpDAO">
    

    2.因爲是接口類的實現,所以要指明與接口方法的對應關係和對應的傳入/返回的參數。這裏也就會建立起與實體類的聯繫
    3.Mybatis要通過該文件生成SQL,所以要配置執行的SQL。

  • Mapper接口類
    一個普通的Java接口類,通過Mapper映射文件裏namespace等的配置,建立與Mybatis的聯繫

  • 實體類
    一個普通的Java類,通過Mapper映射文件裏傳入/返回參數的配置,建立與Mybatis的聯繫

  • 調用Mapper接口類
    已經被Spring做了封裝,就像調用普通接口方法一樣,我們從使用框架的角度就不需要多做什麼了。

Mapper映射文件的相關配置

目前可以這麼理解,與Mybatis相關的資源中,Mybatis配置文件是死的,配好就在那,沒什麼變動。接口類和實體類,更多是框架外部的東西,只是框架與這兩個類有聯繫,上節已經闡明瞭聯繫點在哪兒。所以剩下的屬於Mybatis框架內的東西就只有配置Mapper映射文件了。

  • EmpMapper.xml
    <!-- 簡單的mapper配置文件 -->
    <mapper namespace="寫對應的java接口文件路徑,包路徑要寫全">
    	<!-- 增 -->
    	<!-- id:sql語句唯一名
    		 parameterType:傳入的參數類型 
    	 -->
    	<insert id="save" parameterType="entity.Emp">
    		<!-- #{xxx}表示取傳入參數實例的對應屬性xxx的值 -->
    		INSERT INTO emp VALUES(#{id},#{ename},#{age})
    	</insert>
    	
    	<!-- 刪  -->
    	<delete id="delete" parameterType="int">
    		DELETE FROM emp WHERE id = #{id}
    	</delete>
    	
    	<!-- 改  -->
    	<update id="modify" parameterType="entity.Emp">
    		UPDATE emp SET ename = #{ename},age = #{age} WHERE id = #{id}
    	</update>
    	
    	<!-- 查  -->
    	<!-- resultType:返回的查詢結果的類型  -->
    	<select id="findAll" resultType="entity.Emp">
    		SELECT * FROM emp
    	</select>
    	
    	<!-- 實體類的屬性名與表結構的字段名不一致的情況 -->
    	<!-- resultMap:用來將從數據庫結果集取出的數據映射到相應的實體對象的字段中,映射規則是empMap -->
    	<select id="findById" parameterType="int" resultMap="empMap">
    		SELECT * FROM emp WHERE id = #{id}
    	</select>
    	<!-- resultMap元素:存放映射規則 -->
    	<!-- type:實體類
    		 property:實體類的屬性名。
    		 column:表結構的字段名。
    	 -->
    	<resultMap type="entity.Emp2" id="empMap">
    		<result property="empNo" column="id"/>
    		<result property="name" column="ename"/>
    	</resultMap>
    </mapper>
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章