學習MyBatis必知必會(2)~MyBatis基本介紹和MyBatis基本使用

一樂樂發表於2022-01-30



一、MyBatis框架基本介紹:

1、認識 MyBatis:

  • MyBatis 是支援普通 SQL 查詢,儲存過程和高階對映的持久層框架,嚴格上說應該是一個 SQL 對映框架

  • 前身是 iBatis,也就是淘寶使用的持久層框架

  • 幾乎所有的 JDBC 程式碼和引數的手工設定以及結果集的處理都可以交給 MyBatis 完成, 而這隻需要簡單的使用 XML或註解配置 就可以完成。

  • 和 Hibernate 相比更簡單、更底層、效能更優異,因此更深入人心,更受企業的青睞。


2、下載地址和文件:

​                        http://mybatis.org/spring/zh/index.html



二、MyBatis 基本使用

1、開發步驟一:拷貝jar包

■ 專案拷貝jar記得先建立一個lib目錄

  • mysql連線驅動jar包【MyBatis底層是jdbc】
  • myBatis.jar

2、開發步驟二:編寫配置檔案【主配置檔案和對映檔案】

2-1、瞭解一下MyBatis的配置檔案(兩種---主配置檔案和對映檔案):

(1)MyBatis全域性配置檔案/主配置檔案:
  • 起名:不固定,但是需要見名知意,例如:mybatis-config.xml
  • 路徑:classpath 的根路徑
  • 參考文件:mybatis中文官網的xml配置章節
✿ MyBatis全域性配置檔案內容:

① 全域性配置資訊

② 屬性配置資訊

③ 外掛配置資訊

配置環境資訊事務+連線池

關聯對映檔案


(2) MyBatis 對映檔案/Mapper檔案:
  • 起名:不固定,但是需要見名知意,例如:XXXMapper.xml,是哪一個物件的對映檔案,例如UserMapper.xml
  • 路徑:Mapper 檔案應該放到 Mapper介面的路徑我們暫時放到domain位置
  • 參考文件:mybatis中文官網的xml對映檔案章節
✿ MyBatis 對映檔案內容:

編寫增刪改查sql,把sql存放到insert| update| delete| select 元素中去

結果集對映:解決表中的列和物件屬性不匹配問題

③ 快取配置


2-2、配置檔案的約束檔案【約束檔案在入門章節】:

//mybatis主配置檔案 [例如mybatis-config.xml] 的約束檔案---mybatis-3-config.dtd 【連網狀態它會自動下載】
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

 //mybatis對映檔案 [例如UserMapper.xml] 的約束檔案---mybatis-mapper.dtd 【連網狀態它會自動下載】
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

■ 關聯本地檔案,以防止網路不好下載失敗

image


2-3、編寫主配置檔案和對映檔案內容

✿ 全域性/主配置檔案[mybatis-config.xml檔案]:
  • 配置環境資訊事務+連線池
  • 關聯對映檔案
  <configuration>
  	<environments default="dev">
	  <!-- 開發環境:在以後的事務管理器和連結池都是交給spring框架來管理的 -->
	  	<!-- 1、配置資料庫的環境 -->
	  	<environment id="dev">
	  		<!-- ① 事務管理器 -->
	  		<transactionManager type="JDBC"/>
	  		<!-- ② 連線池【連線資料庫4要素】 -->
	  		<dataSource type="POOLED">
	  			<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
	  			<property name="url" value="jdbc:mysql://localhost:3306/mybatisdemo"/>
	  			<property name="username" value="root"/>
	  			<property name="password" value="admin"/>
	  		</dataSource>
	  	</environment>
  </environments>
  	<!-- 2、關聯對映檔案  -->
	<mappers>
	<!-- 全域性的配置檔案是在專案輸出路徑bin目錄下 -->
	<!-- classpath路徑(預設專案輸出路徑是bin【即編譯成class位元組碼的資料夾bin,未編譯前是在原始碼src】) -->
		<mapper resource="com/shan/hello/UserMapper.xml"/>
	</mappers>
  </configuration>



✿ 對映檔案[UserMapper.xml檔案]:
  • 編寫增刪改查的sql
  <!-- namespace 名稱空間:是對應的Mapper介面的全限定名稱,我們暫時寫類的全限定名稱
  		不同的mappe檔案的namespace是不一樣的。
  		mapper的namespace結合id屬性【namespace.id】唯一地表示了應用中某一條sql語句。
   -->
  <mapper namespace="com.shan.hello.UserMapper">
  	  <!-- select標籤:用來編寫查詢sql語句
  	  	id: 唯一的識別符號,標識被引用的這條sql語句
		parameterType:表示執行該sql語句需要的引數型別,建議不屑,MyBatis可以自行推斷出來
		resultType:把結果集中的每一行資料封裝成什麼型別的物件
  	   -->
	  <select id="get" parameterType="java.lang.Long" resultType="com.shan.hello.User">
	    select * from t_user where id = #{id}
	  </select>
</mapper>

3、開發步驟三:編寫測試程式碼,測試myBatis執行增刪改查操作:

  • 以查詢為例:

    載入配置檔案

    建立會話工廠物件SqlSessionFactory【好比連線池DataSource】

    通過會話工廠建立會話物件SqlSession【好比連線物件Connection】

    執行crud操作

    關閉資源

	public void testGet() throws IOException {
		//1、從classpath路徑載入mybatis全域性配置檔案mybatis-config.xml
		InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
		//2、建立SqlSessoinFactory會話工廠物件,好比連線池DataSource
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		//3、建立SqlSession會話物件,好比連線物件Connection
		SqlSession session = factory.openSession();
		//4、進行資料庫操作(CRUD)
		User user = session.selectOne("com.shan.hello.UserMapper.get", 300L);
    	System.out.println(user);
		//5、關閉資源
		session.close();
	}

❀ 總結:開發流程-拷貝jar包,編寫配置檔案,然後進行測試


相關文章