MyBatis-第一章java
ORM(Object Relational Mapping) 設計模式,思想sql
對象關係映射,是一種數據持久化技術。它在對象模型和關係型數據庫之間創建起對應關係,而且提供了一種機制,經過JavaBean對象去操做數據庫表中的數據。數據庫
Object Relation Mapping設計模式
對象 關係 映射安全
Object: java的對象mybatis
Relation: 關係型數據庫app
初始MyBatis 具體實現框架
是一個優秀的數據持久化框架,在實體類和SQL語句之間創建映射關係,是一種半自動化的ORM實現。其封裝性要低於Hibernate,性能優秀,而且小巧、簡單易學,如今應用也愈來愈普遍。性能
MyBatis環境部署測試
1.去官網下載相關的jar和配置
2.添加jar包
3.添加配置文件 入口配置文件
3.1 總配置文件 mybatis-config.xml (相似jdbc.properties)
配置和鏈接數據庫的主要信息;
指定mapper文件
3.2 Mapper文件(一個dao對應一個mapper文件)
一個dao對應一個mapper文件,對應一個表
寫操做數據庫的sql語句的
4. service層
5. 測試類
一個插入例子
1. 建立一個示例表 BOOK 先使用teacher表
列名 |
類型 |
約束 |
備註 |
book_id |
number |
序列自增 |
主鍵 |
book_name |
varchar2(32) |
|
圖書名稱 |
book_auth |
varchar2(32) |
|
圖書做者 |
book_brief |
varchar2(32) |
|
圖書描述 |
book_create_date |
date |
默認時間 |
時間戳 |
2. 建立java項目
3. 導包ojdbc6.jar,mybatis-3.2.6.jar
4. 建立MVC文件層結構
5. 建立實體類 Book.java
6. 配置主配置文件 mybatis-config.xml
7. 配置mapper文件,主要寫SQL語句,插入,修改,刪除
8. Test_Main測試
select 示例1
teacher表,字段和實體類名字一致
select 示例2
book表,字段和實體類名字不一致,須要映射
resultType 返回具體某個類
resultMap 返回一個map集合
SqlSessionFactory
SqlSessionFactory是MyBatis的關鍵對象,它是個單個數據庫映射關係通過編譯後的內存鏡像.SqlSessionFactory對象的實例能夠經過SqlSessionFactoryBuilder對象類得到,而SqlSessionFactoryBuilder則能夠從XML配置文件或一個預先定製的Configuration的實例構建出SqlSessionFactory的實例.每個MyBatis的應用程序都以一個SqlSessionFactory對象的實例爲核心.同時SqlSessionFactory也是線程安全的,SqlSessionFactory一旦被建立,應該在應用執行期間都存在.在應用運行期間不要重複建立屢次,建議使用單例模式.SqlSessionFactory建立SqlSession的工廠。
整個MyBatis運行期間的核心工廠,大部分類都由它生產製造。
SqlSession
SqlSession是MyBatis的關鍵對象,是執行持久化操做的獨享,相似於JDBC中的Connection.它是應用程序與持久層之間執行交互操做的一個單線程對象,也是MyBatis執行持久化操做的關鍵對象.SqlSession對象徹底包含以數據庫爲背景的全部執行SQL操做的方法,它的底層封裝了JDBC鏈接,能夠用SqlSession實例來直接執行被映射的SQL語句.每一個線程都應該有它本身的SqlSession實例.SqlSession的實例不能被共享,同時SqlSession也是線程不安全的,絕對不能將SqlSeesion實例的引用放在一個類的靜態字段甚至是實例字段中.也毫不能將SqlSession實例的引用放在任何類型的管理範圍中,好比Servlet當中的HttpSession對象中.使用完SqlSeesion以後關閉Session很重要,應該確保使用finally塊來關閉它.
一次請求數據的鏈接,相似於JDBC中的Connection
執行順序1
1. 首先加載mybatis-config.xml總配置文件,根據development的參數配置鏈接數據庫;查詢mappers映射關係,找到mapper.xml配置文件
2. 執行mapper.xml文件,該文件記錄了運行SQL;準備id的名字等待被調用
3. TestMain 生成SqlSessionFactory工廠對象
4. 由工廠對象生成SqlSession,而後打開鏈接數據庫鏈接通道
5. 對應調用mapper.xml文件中的id,執行mapper.xml中SQL語句
6. 關閉SqlSession
.dtd 文件
http://mybatis.org/dtd/mybatis-3-mapper.dtd
文檔類型定義(Document Type Definition)是一套爲了進行程序間的數據交換而創建的關於標記符的語法規則。
對應 window --> preferencrs --> xml --> xml catalog –> .xsd
命名空間