-----------------------------------------------------------
一、什麼是框架?
它是咱們軟件開發中的一套解決方案,不一樣的框架解決的是不一樣的問題。
使用框架的好處:
框架封裝了不少的細節,使開發者可使用極簡的方式實現功能。大大提升開發效率。
二、三層架構
表現層:
是用於展現數據的
業務層:
是處理業務需求
持久層:
是和數據庫交互的
三、持久層技術解決方案
JDBC技術:
Connection
PreparedStatement
ResultSet
Spring的JdbcTemplate:
Spring中對jdbc的簡單封裝
Apache的DBUtils:
它和Spring的JdbcTemplate很像,也是對Jdbc的簡單封裝java
以上這些都不是框架
JDBC是規範
Spring的JdbcTemplate和Apache的DBUtils都只是工具類sql
四、mybatis的概述
mybatis是一個持久層框架,用java編寫的。
它封裝了jdbc操做的不少細節,使開發者只須要關注sql語句自己,而無需關注註冊驅動,建立鏈接等繁雜過程
它使用了ORM思想實現告終果集的封裝。數據庫
ORM:
Object Relational Mappging 對象關係映射
簡單的說:
就是把數據庫表和實體類及實體類的屬性對應起來
讓咱們能夠操做實體類就實現操做數據庫表。mybatis
user User
id userId
user_name userName
今天咱們須要作到
實體類中的屬性和數據庫表的字段名稱保持一致。
user User
id id
user_name user_name
五、mybatis的入門
mybatis的環境搭建
第一步:建立maven工程並導入座標
第二步:建立實體類和dao的接口
第三步:建立Mybatis的主配置文件
SqlMapConifg.xml
第四步:建立映射配置文件
IUserDao.xml
環境搭建的注意事項:
第一個:建立IUserDao.xml 和 IUserDao.java時名稱是爲了和咱們以前的知識保持一致。
在Mybatis中它把持久層的操做接口名稱和映射文件也叫作:Mapper
因此:IUserDao 和 IUserMapper是同樣的
第二個:在idea中建立目錄的時候,它和包是不同的
包在建立時:com.itheima.dao它是三級結構
目錄在建立時:com.itheima.dao是一級目錄
第三個:mybatis的映射配置文件位置必須和dao接口的包結構相同
第四個:映射配置文件的mapper標籤namespace屬性的取值必須是dao接口的全限定類名
第五個:映射配置文件的操做配置(select),id屬性的取值必須是dao接口的方法名架構
當咱們聽從了第三,四,五點以後,咱們在開發中就無須再寫dao的實現類。
mybatis的入門案例
第一步:讀取配置文件
第二步:建立SqlSessionFactory工廠
第三步:建立SqlSession
第四步:建立Dao接口的代理對象
第五步:執行dao中的方法
第六步:釋放資源app
注意事項:
不要忘記在映射配置中告知mybatis要封裝到哪一個實體類中
配置的方式:指定實體類的全限定類名
mybatis基於註解的入門案例:
把IUserDao.xml移除,在dao接口的方法上使用@Select註解,而且指定SQL語句
同時須要在SqlMapConfig.xml中的mapper配置時,使用class屬性指定dao接口的全限定類名。
明確:
咱們在實際開發中,都是越簡便越好,因此都是採用不寫dao實現類的方式。
無論使用XML仍是註解配置。
可是Mybatis它是支持寫dao實現類的。框架
六、自定義Mybatis的分析:
mybatis在使用代理dao的方式實現增刪改查時作什麼事呢?
只有兩件事:
第一:建立代理對象
第二:在代理對象中調用selectList
自定義mybatis能經過入門案例看到類
class Resources
class SqlSessionFactoryBuilder
interface SqlSessionFactory
interface SqlSessionmaven