第四章 ORM 操作 MySQL
- 官方下載地址:動力節點官網
- 視頻觀看地址
https://www.bilibili.com/video/BV1XQ4y1m7ex
講解 MyBatis 框架, 讀寫 MySQL 資料,通過 SpringBoot +MyBatis 實作對資料庫學生表的查詢操作,
資料庫參考: springboot.sql 腳本檔案
創建資料庫:資料庫 springboot,指定資料庫字符編碼為 utf-8

?
插入資料
?
4.1 創建 Spring Boot 專案
專案名稱: 015-springboot-mybatis
使用@Mapper 注解
? pom.xml
?
?
?
加入 resources 插件
?
? 配置資料源: application.properties
?
?
? 創建數物體 bean, dao 介面, mapper 檔案
?
? 物體類
?
?
? 創建 Dao 介面
?
? mapper 檔案:
?
?
? service 介面
?
? service 介面實作類
?
return student;
}
}
? controller 類
?
啟動 Application 類, 瀏覽器訪問http://localhost:9090/myboot/query
4.2 @MapperScan
在 Dao 介面上面加入@Mapper, 需要在每個介面都加入注解, 當 Dao 介面多的時候不方便,
可以使用如下的方式解決,
主類上添加注解包掃描: @MapperScan("com.bjpowernode.dao")
新建 Spring Boot 專案 : 016-springboot-mybatis2
專案的代碼同上面的程式, 修改的位置:
1.去掉 StudentMapper 介面的上面的@Mapper 注解
2.在主類上面加入 @MapperScan()
?
4.3 mapper 檔案和 java 代碼分開管理
這種方式比較推薦, mapper 檔案放在 resources 目錄下, java 代碼放在 src/main/java,
實作步驟:
? 在resources 創建自定義目錄,例如mapper, 存放 xml 檔案
?
? 把原來的 xml 檔案剪切并拷貝到 resources/mapper 目錄
? 在application.properties組態檔中指定映射檔案的位置, 這個配置只有介面和映 射檔案不在同一個包的情況下,才需要指定,
?
? 運行主類, 瀏覽器測驗訪問
4.4 事務支持
Spring Boot 使用事務非常簡單,底層依然采用的是 Spring 本身提供的事務管理
? 在入口類中使用注解 @EnableTransactionManagement 開啟事務支持
? 在訪問資料庫的 Service 方法上添加注解 @Transactional 即可
通過 SpringBoot +MyBatis 實作對資料庫學生表的更新操作,在 service 層的方法中構建 例外,查看事務是否生效,
創建專案: 018-springboot-transaction
專案可以在 MyBatis 專案中修改,
實作步驟:
1. pom.xml
?
?
2. 修改 StudentService,在 addStudent()方法中拋出例外
?
?
3. 在 Application 主類上, @EnableTransactionManagement 開啟事務支持 @EnableTransactionManagement 可選,但是@Service 必須添加事務才生效
?
4. 測驗應用, 資料沒有添加成功
5. 注釋掉 StudentServiceImpl 上的@Transactional 測驗,資料添加成功
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/421297.html
標籤:Java
