Mybatis Mybatis的介紹 1. Mybatis是持久層層框架,是半ORM(對象關係映射)框架. 2. 使用Mybatis有兩類配置文件 核心配置文件: mybatis Config.xml 映射配置文件: 與介面相對應的xml文件 3. 核心的API: SqlSessionFactory ...
Mybatis
Mybatis的介紹
1. Mybatis是持久層層框架,是半ORM(對象關係映射)框架.
2. 使用Mybatis有兩類配置文件
* 核心配置文件: mybatis-Config.xml
* 映射配置文件: 與介面相對應的xml文件
3. 核心的API:
* SqlSessionFactoryBuilder : 構建者模式
* SqlSessionFactory : 工廠模式
* SqlSession
4. 執行的流程
1. 讀取配置文件
2. 使用SqlSessionFactoryBuilder的builder方法獲取SqlSessionFactory
3. 使用sqlSessionFactory的openSession方法獲取SqlSession
4. 使用sqlSession的getMapper方法獲取介面的代理對象
5. 測試方法即可
5. 瞭解Mybatis底層使用的知識點:
* 反射
* 構建者模式,工廠模式,代理模式
* xml配置文件的相關操作
Mybatis的基本開發
1. 規範:
* xml配置文件中的namespace與介面的全限定類名相同.
* 動態標簽的id與介面的方法名一致
* xml的配置文件和介面的包名與介面名一致
2. sql語句的寫法:
* $ : 字元串拼接符,簡單數據類型使用${value},複雜類型就是${屬性}
* # : 占位符
3. 插入的主鍵返回:
<selectKey keyProperty="" keyColumn="" resultType="" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
4. 動態sql:
1. <sql id=""></sql> : sql片段
2. <if test=""> : if判斷
3. <where> : 添加條件,自動添加 where 1 = 1並且去掉拼接條件後的第一個and
4. <foreach collection="" open="" close="" item="" separator=""> : 遍歷集合
5. sql的輸入輸入參數的傳遞:
* 輸入參數: parameterType
* 輸出參數: resultType, resuleMap
6. 核心配置文件:
* <properties> : 載入外部properties資源文件
* <typeAlises> : 起別名
* <mappers> : 載入映射的xml配置文件
* <enviroments> : 配置資料庫的連接信息
1. 事務 : JDBC事務
2. 連接池 :
* POOLED : 連接池
* UNPOOLED : 每次創建新的
* JNDI
3. mybatis預設是不自動提交的,可以在openSession中傳入true開啟自動提交
7. 關聯查詢(一對多,多對多)
* 使用resultMap來進行相關的查詢:
1. <association javaType=""> : 單個pojo
2. <collection ofType=""> : 集合
8. 延遲載入(需要在核心配置文件中開啟延遲載入的開關)
9. Mybatis的緩存:
* 一級緩存: sqlSession
* 二級緩存: sqlSessionFactory(需要開啟二級緩存的開關)
10. 註解開發:
* @Insert
* @Select
* @Update
* @Delete
* @Results
* @Result
* @ResultMap
* @One
* @Money
* @CacheNamespace