持久層框架之-------mybatis學習(—)

mybatis框架概述

1、mybatis入門

mybatis的概述
mybatis的環境搭建
mybatis入門案例
自定義mybatis框架(主要的目的是爲了讓你們瞭解mybatis中執行細節)
複製代碼

2、mybatis基本使用

mybatis的單表crud操做
mybatis的參數和返回值
mybatis的dao編寫
mybatis配置的細節
	幾個標籤的使用
複製代碼

一、什麼是框架?java

它是咱們軟件開發中的一套解決方案,不一樣的框架解決的是不一樣的問題。
使用框架的好處:
	框架封裝了不少的細節,使開發者可使用極簡的方式實現功能。大大提升開發效率。
複製代碼

二、三層架構git

表現層:
	是用於展現數據的
業務層:
	是處理業務需求
持久層:
	是和數據庫交互的
複製代碼

三、持久層技術解決方案

JDBC技術:
	Connection
	PreparedStatement
	ResultSet
Spring的JdbcTemplate:
	Spring中對jdbc的簡單封裝
Apache的DBUtils:
	它和Spring的JdbcTemplate很像,也是對Jdbc的簡單封裝

以上這些都不是框架
	JDBC是規範
	Spring的JdbcTemplate和Apache的DBUtils都只是工具類
複製代碼

四、mybatis的簡介

mybatis是一個持久層框架,用java編寫的。
它封裝了jdbc操做的不少細節,使開發者只須要關注sql語句自己,而無需關注註冊驅動,建立鏈接等繁雜過程
它使用了ORM思想實現告終果集的封裝。

ORM:
	Object Relational Mappging 對象關係映射
	簡單的說:
		就是把數據庫表和實體類及實體類的屬性對應起來
		讓咱們能夠操做實體類就實現操做數據庫表。

		user			User
		id			userId
		user_name		userName
複製代碼

五、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的建立使用了三種設計模式

一、建造者模式
二、工廠模式
三、代理模式
複製代碼

mybatis實現增刪改查的底層原理

實際上底層經過代理對象(sqlSession)調用selectList方法實現的,對JDBC底層一些細節作了封裝。github

一張圖讓你清楚mybatis的底層執行流程

分析代理dao的執行過程(開發中常用代理對象執行方法,不須要寫dao的實現類)

分析編寫dao實現類mybatis的執行過程(比較麻煩,瞭解便可)

mybatis的入門案例 第一步:讀取配置文件 第二步:建立SqlSessionFactory工廠 第三步:建立SqlSession 第四步:建立Dao接口的代理對象 第五步:執行dao中的方法 第六步:釋放資源

注意事項:
		不要忘記在映射配置中告知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 SqlSession
複製代碼

寫在最後

推薦本身的Github地址: github.com/Lmobjectsql

歡迎點贊與留言哦!您的點贊是對做者作大的鼓勵與支持。謝謝!!!
複製代碼
相關文章
相關標籤/搜索