小松宣佈與本田合作開發小型電動挖掘機
阿新 • • 發佈:2021-06-21
大綱
1、mybatis中的連線池以及事務控制 原理部分了解,應用部分會用
mybatis中連線池使用及分析
mybatis事務控制的分析
2、mybatis基於XML配置的動態SQL語句使用 會用即可
mappers配置檔案中的幾個標籤:
<if>
<where>
<foreach>
<sql>
3、mybatis中的多表操作 掌握應用
一對多
一對一(?)
多對多
1、連線池:
我們在實際開發中都會使用連線池。
因為它可以減少我們獲取連線所消耗的時間。
2、mybatis中的連線池
mybatis連線池提供了3種方式的配置:
配置的位置:
主配置檔案SqlMapConfig.xml中的dataSource標籤,type屬性就是表示採用何種連線池方式。
type屬性的取值:
POOLED 採用傳統的javax.sql.DataSource規範中的連線池,mybatis中有針對規範的實現
UNPOOLED 採用傳統的獲取連線的方式,雖然也實現Javax.sql.DataSource介面,但是並沒有使用池的思想。
JNDI 採用伺服器提供的JNDI技術實現,來獲取DataSource物件,不同的伺服器所能拿到DataSource是不一樣。
注意:如果不是web或者maven的war工程,是不能使用的。
我們課程中使用的是tomcat伺服器,採用連線池就是dbcp連線池。
建立工程->Maven ->不勾create from ->com.yu -> day03_eesy_01datasourceAndTx(初始程式碼和day02_eesy_01mybatisCRUD一樣)
日誌輸出對比
3、mybatis中的事務
什麼是事務
事務的四大特性ACID
不考慮隔離性會產生的3個問題
解決辦法:四種隔離級別
它是通過sqlsession物件的commit方法和rollback方法實現事務的提交和回滾
4、mybatis中的多表查詢
表之間的關係有幾種:
一對多
多對一
一對一
多對多
舉例:
使用者和訂單就是一對多
訂單和使用者就是多對一
一個使用者可以下多個訂單
多個訂單屬於同一個使用者
人和身份證號就是一對一 一個人只能有一個身份證號 一個身份證號只能屬於一個人 老師和學生之間就是多對多 一個學生可以被多個老師教過 一個老師可以交多個學生 特例: 如果拿出每一個訂單,他都只能屬於一個使用者。 所以Mybatis就把多對一看成了一對一。 mybatis中的多表查詢: 示例:使用者和賬戶 一個使用者可以有多個賬戶 一個賬戶只能屬於一個使用者(多個賬戶也可以屬於同一個使用者) 步驟: 1、建立兩張表:使用者表,賬戶表 讓使用者表和賬戶表之間具備一對多的關係:需要使用外來鍵在賬戶表中新增 2、建立兩個實體類:使用者實體類和賬戶實體類 讓使用者和賬戶的實體類能體現出來一對多的關係 3、建立兩個配置檔案 使用者的配置檔案 賬戶的配置檔案 4、實現配置: 當我們查詢使用者時,可以同時得到使用者下所包含的賬戶資訊 當我們查詢賬戶時,可以同時得到賬戶的所屬使用者資訊 示例:使用者和角色 一個使用者可以有多個角色 一個角色可以賦予多個使用者 步驟: 1、建立兩張表:使用者表,角色表 讓使用者表和角色表具有多對多的關係。需要使用中間表,中間表中包含各自的主鍵,在中間表中是外來鍵。 2、建立兩個實體類:使用者實體類和角色實體類 讓使用者和角色的實體類能體現出來多對多的關係 各自包含對方一個集合引用 3、建立兩個配置檔案 使用者的配置檔案 角色的配置檔案 4、實現配置: 當我們查詢使用者時,可以同時得到使用者所包含的角色資訊 當我們查詢角色時,可以同時得到角色的所賦予的使用者資訊