Mybatis mapper動態代理方式的crud | MyBatis接口開發

原則:規定優於配置

硬編碼方式

	/*abc.java*/
		Configuration conf = new Configuration();
		con.setName("myProject") ;

配置方式:
abc.xml
<name>myProject</name>
默認值就是myProject

具體實現的步驟:
1.基礎環境:mybatis.jar/ojdbc.jar、conf.xml、mapper.xml
2.(不同之處)
目標: 省略掉statement,即直接可以定位出SQL語句

a.接口,接口中的方法必須遵循以下約定:
1.方法名和mapper.xml文件中標籤的id值相同
2.方法的 輸入參數 和mapper.xml文件中標籤的 parameterType類型一致 (如果mapper.xml的標籤中沒有 parameterType,則說明方法沒有輸入參數)
3.方法的返回值 和mapper.xml文件中標籤的 resultType類型一致 (無論查詢結果是一個 還是多個(student、List),在mapper.xml標籤中的resultType中只寫 一個(Student);如果沒有resultType,則說明方法的返回值爲void)

除了以上約定,要實現 接口中的方法 和 Mapper.xml中SQL標籤一一對應,還需要以namespace的值 ,就是 接口的全類名( 接口 - mapper.xml 一一對應)

匹配的過程:
1.根據 接口名(比如StudentMapper) 找到 mapper.xml文件(根據的是namespace=接口全類名,比如<mapper namespace = "xx.xxx.xxxx.StudentMapper">
2.根據 接口的方法名 找到 mapper.xml文件中的SQL標籤 (方法名=SQL標籤Id值)

以上2點可以保證: 當我們調用接口中的方法時,程序能自動定位到 某一個Mapper.xml文件中的sqL標籤

習慣:SQL映射文件(mapper.xml) 和 接口放在同一個包中 (注意修改conf.xml中加載mapper.xml文件的路徑)
比如像這樣👇
在這裏插入圖片描述

以上,可以通過接口的方法->SQL語句

執行:

		StudentMapper studentMapper = session.getMapper(StudentMapper.class) ;
		studentMapper.方法();

通過session對象獲取接口(session.getMapper(接口.class);),再調用該接口中的方法,程序會自動執行該方法對應的SQL。

優化

  1. 可以將配置信息 單獨放入 db.properties文件中

  2. MyBatis全局參數及設置方式

  3. 別名

  4. 類型轉換器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章