《使用SSM框架開發企業級應用》第一章 初始MyBatis
單詞
MyBatis框架 SqlSessionFactory工廠 SqlSessionFactoryBuider構造器
SqlSession使用 Configuration配置 Mapper對映 Environment環境
Property性質 Datasource資料來源 typeAliases型別命名
什麼是框架?
框架是一個提供了可重用的公共結構的半成品
框架技術的優勢
- 不用再考慮公共問題,框架已經幫我們做好了
- 可以專心於業務邏輯,保證核心業務邏輯的開發質量
- 結構統一,便與學習和維護
- 框架中集成了前人的經驗,可以幫助新手寫出穩定、效能優良而且結構優美的高質量程式
主流框架有哪些
Struts框架 Hibernate框架 Spring框架 SpringMVC框架 MyBatis框架
資料持久化的概念
資料持久化是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中資料模型的統稱
MyBatis框架簡介
MyBatis(可以代替JDBC)是一個開源的資料持久層框架,內部封裝了通過JDBC訪問資料庫的操作,支援普通的SQL查詢,儲存過程和高階對映,幾乎消除了所有的JDBC程式碼和引數的手工設定以及結果集的檢索。
MyBatis框架的優點
與JDBC相比,減少了50%以上的程式碼量
最簡單的持久化框架,小巧並簡單易學
SQL程式碼從程式程式碼中徹底分離,可重用
提供XML標籤,支援編寫動態SQL
提供對映標籤,支援物件與資料庫的ORM欄位對映
MyBatis框架的缺點
SQL語句編寫工作量大,對開發人員有一定要求
資料庫移植性差
MyBatis框架適用場合
MyBatis專注於SQL本身,是一個足夠靈活的DAO層解決方案,對效能的要求很高,或者需求變化較多的專案,如網際網路專案,那麼MyBatis將是不錯的選擇。
什麼是ORM?
ORM(Object/Relational Mapping)即物件/關係對映,是一種資料持久化技術,它在物件模型和關係資料模型資料庫之間建立起對應關係,通過javaBean物件去操作資料庫 表中的資料
MyBatis 環境搭建
首先建立Maven專案
Eclipse—file—new—project—搜尋maven—mavenProject—勾選Create a simple project—next—GroupId:填寫/Artifact Id:填寫、packaging:web/jar —再看專案列表中建立的專案帶有webapp即建立成功
接著搭建MyBatis開發環境
建立maven工程—pom.xml—src/main/resources—建立database.properties/myvatis-—config.xml—在mybatis-config.xml配置資料庫連線—配置database.propertise
https://jingyan.baidu.com/article/19020a0a140c71529d28422e.html
MyBatis三個基本要素
- 核心介面和類
- MyBatis核心配置檔案(mybatis-config.Xml)
- SQL對映檔案(mapper.xml)
MyBatis的核心物件
SqlSessionFactoryBuilder
丨build()
SqlSessionFactory
丨openSession()
SqlSession
SqlSessionFactoryBuilder
用過即丟,其生命週期只存在於方法體內
可重用其來建立多個 SqlSessionFactory 例項
負責構建SqlSessionFactory,並提供多個build方法的過載
真正的過載方法有如下三種
- build(Reder reder,String environment,Properties properties)
- build(InputStream inputStream,String environment,Properties properties)
- Build(Configuration config)
配置資訊可以以三種形式提供給SqlSessionFactoryBuilder的build方法
InputStream(位元組流) Reader(字元流) Configuration(類)
SqlSessionFactory物件
簡單的理解就是建立sqlSession例項的工廠。所有MYBatis應用都是以SqlSessionFactory例項為中心,SqlSessionFactory的例項可以通過SqlSessionFactoryBuilder物件來獲得。
SqlSession物件
提供了面向資料庫執行SQL命令所需要的所有方法
SqlSession生命週期和作用域
SqlSession對應著一次資料庫會話,由於資料庫繪畫不是永久的,因此SqlSession生命週期也不是永久的.相反,每次訪問資料庫時都需要建立他(並不是說在SqlSession裡只執行一次sql,是完全可以執行多次的,若是關閉了SqlSession,就需要重新建立它)建立SqlSession的地方只有一個,那就是有自己的SqlSession例項,SqlSession例項不能被共享,也不是執行緒安全的,因此最佳的作用域範圍是request作用域或者方法體作用域內,關閉SqlSession是非常重要的,必須確保SqlSession在finally語句中正常關閉.
SqlSession的兩種使用方式
- 通過SqlSession例項來直接執行已對映的SQL語句
- 基於mapper介面方式操作資料
mybatis-config.xml 系統核心配置檔案(他們有先後順序)
configuration 配置
properties 可以配置在Java 屬性配置檔案中
settings 修改 MyBatis 在執行時的行為方式
typeAliases 為 Java 型別命名一個別名(簡稱)
typeHandlers 型別處理器
objectFactory 物件工廠
plugins 外掛
environments 環境
environment 環境變數
transactionManager 事務管理器
dataSource 資料來源
mappers 對映器
配置properties元素的兩種方式
1、通過外部指定的方式(database.properties),實現動態配置
2、直接配置為xml,實現動態配置
外部指定高於直接配置