作者:一樂樂
歡迎大家來一樂樂的部落格園
歡迎大家來一樂樂的部落格園
一、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">
■ 關聯本地檔案,以防止網路不好下載失敗
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包,編寫配置檔案,然後進行測試
● 文章來源於:一樂樂的部落格園
● 轉載請註明出處