mybatis-config.xmlhtml
MyBatis 的配置文件包含了會深深影響 MyBatis 行爲的設置和屬性信息。java
configuration(配置) properties(屬性) settings(設置) typeAliases(類型別名) typeHandlers(類型處理器) objectFactory(對象工廠) plugins(插件) environments(環境配置) environment(環境變量) transactionManager(事務管理器) dataSource(數據源) databaseIdProvider(數據庫廠商標識) mappers(映射器)
MyBatis 能夠配置成適應多種環境mysql
不過要記住:儘管能夠配置多個環境,但每一個 SqlSessionFactory 實例只能選擇一種環境。sql
學會使用配置多套運行環境!數據庫
Mybatis默認的事務管理器就是 JDBC , 鏈接池 : POOLED安全
事務管理器(transactionManager)服務器
在 MyBatis 中有兩種類型的事務管理器(也就是 type="[JDBC|MANAGED]"):mybatis
JDBC – 這個配置直接使用了 JDBC 的提交和回滾設施,它依賴從數據源得到的鏈接來管理事務做用域。
MANAGED – 這個配置幾乎沒作什麼。它從不提交或回滾一個鏈接,而是讓容器來管理事務的整個生命週期(好比 JEE 應用服務器的上下文)。 默認狀況下它會關閉鏈接。
有三種內建的數據源類型(也就是 type="[UNPOOLED|POOLED|JNDI]")併發
UNPOOLED– 這個數據源的實現會每次請求時打開和關閉鏈接。app
POOLED– 這種數據源的實現利用「池」的概念將 JDBC 鏈接對象組織起來,避免了建立新的鏈接實例時所必需的初始化和認證時間。 這種處理方式很流行,能使併發 Web 應用快速響應請求。
JNDI – 這個數據源實現是爲了能在如 EJB 或應用服務器這類容器中使用,容器能夠集中或在外部配置數據源,而後放置一個 JNDI 上下文的數據源引用
咱們能夠經過properties屬性來實現引用配置文件
這些屬性都是可外部配置且可動態替換的,既能夠在典型的 Java 屬性文件中配置,亦可經過 properties 元素的子元素來傳遞。【db.properties】
編寫一個配置文件
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8 username=root password=tashuo955
在覈心配置文件中引入
<!--引入外部配置文件--> <properties resource="db.properties"> <property name="username" value="root"/> <property name="pwd" value="11111"/> </properties>
<!--能夠給實體類起別名--> <typeAliases> <typeAlias type="com.loading.pojo.User" alias="User"/> </typeAliases>
也能夠指定一個包名,MyBatis 會在包名下面搜索須要的 Java Bean,好比:
掃描實體類的包,它的默認別名就爲這個類的 類名,首字母小寫!
<!--能夠給實體類起別名--> <typeAliases> <package name="com.loading.pojo"/> </typeAliases>
在實體類比較少的時候,使用第一種方式。
若是實體類十分多,建議使用第二種。
第一種能夠DIY別名,第二種則·不行·,若是非要改,須要在實體上增長註解
@Alias("user") public class User {}
這是 MyBatis 中極爲重要的調整設置,它們會改變 MyBatis 的運行時行爲。
MapperRegistry:註冊綁定咱們的Mapper文件;
方式一: 【推薦使用】
<!--每個Mapper.XML都須要在Mybatis核心配置文件中註冊!--> <mappers> <mapper resource="com/loading/dao/UserMapper.xml"/> </mappers>
方式二:使用class文件綁定註冊
<!--每個Mapper.XML都須要在Mybatis核心配置文件中註冊!--> <mappers> <mapper class="com.loading.dao.UserMapper"/> </mappers>
注意點:
方式三:使用掃描包進行注入綁定
<!--每個Mapper.XML都須要在Mybatis核心配置文件中註冊!--> <mappers> <package name="com.loading.dao"/> </mappers>
注意點:
生命週期,和做用域,是相當重要的,由於錯誤的使用會致使很是嚴重的併發問題。
SqlSessionFactoryBuilder:
SqlSessionFactory:
SqlSession
這裏面的每個Mapper,就表明一個具體的業務!