Mybatis第一天

mybatis框架
共四天
第一天:mybatis入門

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

第二天:mybatis基本使用

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

第三天:mybatis的深入和多表

mybatis的連接池
mybatis的事務控制及設計的方法
mybatis的多表查詢
    一對多(多對一)
    多對多

第四天:mybatis的緩存和註解開發

mybatis中的加載時機(查詢的時機)
mybatis中的一級緩存和二級緩存
mybatis的註解開發
    單表CRUD
    多表查詢

1、什麼是框架?

它是我們軟件開發中的一套解決方案,不同的框架解決的是不同的問題。
使用框架的好處:
    框架封裝了很多的細節,使開發者可以使用極簡的方式實現功能。大大提高開發效率。

2、三層架構

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

3、持久層技術解決方案

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

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

4、mybatis的概述

mybatis是一個持久層框架,用java編寫的。
它封裝了jdbc操作的很多細節,使開發者只需要關注sql語句本身,而無需關注註冊驅動,創建連接等繁雜過程
它使用了ORM思想實現了結果集的封裝。

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

        user            User
        id            userId
        user_name        userName
今天我們需要做到
    實體類中的屬性和數據庫表的字段名稱保持一致。
        user            User
        id            id
        user_name        user_name

5、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中的方法
    第六步:釋放資源

    注意事項:
        不要忘記在映射配置中告知mybatis要封裝到哪個實體類中
        配置的方式:指定實體類的全限定類名
    
    mybatis基於註解的入門案例:
        把IUserDao.xml移除,在dao接口的方法上使用@Select註解,並且指定SQL語句
        同時需要在SqlMapConfig.xml中的mapper配置時,使用class屬性指定dao接口的全限定類名。
明確:
    我們在實際開發中,都是越簡便越好,所以都是採用不寫dao實現類的方式。
    不管使用XML還是註解配置。
    但是Mybatis它是支持寫dao實現類的。

6、自定義Mybatis的分析:

mybatis在使用代理dao的方式實現增刪改查時做什麼事呢?
    只有兩件事:
        第一:創建代理對象
        第二:在代理對象中調用selectList
    
自定義mybatis能通過入門案例看到類
    class Resources
    class SqlSessionFactoryBuilder
    interface SqlSessionFactory
    interface SqlSession
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章