MyBatis思惟導圖

一、初識框架技術sql

二、搭建MyBatis環境數據庫

三、掌握MyBatis的核心API設計模式

四、掌握MyBatis的核心配置文件:主要用於配置數據庫鏈接和MyBatis運行時所需的各類特性緩存

五、掌握SQL映射文件(或者使用自動生成SQL映射文件的插件)tomcat

六、掌握MyBatis緩存session

七、Dao上級操做數據結構

八、掌握動態SQLmybatis

九、掌握MyBatis框架的優缺點和其使用場合架構

-----------------------------------------------------------------------------------------------------------------------mvc

---------------知識點詳情

-------------------------------------------------------------

一、初識框架技術

  1.1什麼是框架

      框架(Framework)是一個提供了可重用的公共結構的半成品,它成爲構建新的應用程序提供了極大的便利,更提供了可重用的設計;

  1.2當前的主流框架

      1.2.1 Struts2:

            Struts2以Webwork設計思想爲核心,吸取了Struts框架的部分優勢,提供了一個更加整潔的基於MVC設計模式實現的Web應用程序框架。
            它引入了幾個新的框架特性:從邏輯中分離出橫切關注點的攔截器,減小或者消除配置文件,貫穿整個框架的強大表達式語言,支持可重用的標籤API等。

            Struts2充分利用了從其餘MVC框架學到的經驗和教訓,使整個框架更加清晰、靈活(引入了攔截器)。

      1.2.2 Hibernate:

            Hibernate是一個優秀的持久化框架(ORM),負責簡化將對象數據保存到數據庫中,或從數據庫中讀取數據並封裝到對象的工做。
            Hibernate經過簡單配置和編碼便可替代JDBC繁瑣的程序代碼。

      1.2.3Spring:

            Spring是一個開源框架。它的目標是使現有的JavaEE技術更容易使用。
            它只要做爲依賴注入容器和AOP實現存在,還提供了聲明式事務、對DAO層的支持等簡化開發等功能。
            Spring能夠很方便地與SpringMVC、Struts二、Mybatis、Hibernate等框架集成。

      1.2.4Spring MVC:

            是Spring框架提供的構建Web應用程序的全功能MVC模塊,屬於Spring Framework的後續產品。

            它擁有高度的可配置性,支持多種視圖技術,至關靈活。
            Spring整合Springmvc是無縫集成,是一個高性能的架構模式。

      1.2.5MyBatis:

          MyBatis是一個很優秀的數據持久層框架(ORM),在實體類和SQL語句之間創建映射關係,是一種半自動化的ORM實現;

             MyBatis的封裝性要低於Hibernate,性能優越,而且小巧;

二、搭建MyBatis環境

  2.1什麼是數據持久化:將內存中的數據模型轉換爲存儲模型,以及將存儲模型轉換爲內存中的數據模型的統稱。

  2.2什麼是ORM:

        對象關係映射(Object Relational Mapping   ORM)是一種數據持久化技術。

        它在對象模型和關係型數據庫之間創建起對應關係,而且提供了一種機制,經過JavaBean對象去操做數據庫表中的數據。

  2.3搭建MyBatis環境

        2.3.一、下載 jar包&部署jar包,或在pom.xml添加jar包依賴   (mybatis-3.2.2.jar)

         2.3.二、編寫配置文件

        2.3.三、建立實體類(或者使用自動生成實體類的插件)

        2.3.四、建立dao接口(或者使用自動生成dao接口的插件)

        2.3.五、建立sql映射文件(或者使用自動生成sql映射文件的插件)

        2.3.六、在業務邏輯層調用

三、掌握MyBatis的核心API

  3.1SQLSessionFactoryBuilder:構建SQLSessionFactory

  3.2SqlSessionFactory:該對象能夠完成對配置文件的讀取factory=new SqlSessionFactoryBuilder().build(is);

  3.3SqlSession:該對象的做用是調用mapper文件進行數據庫操做

四、掌握MyBatis的核心配置文件:主要用於配置數據庫鏈接和MyBatis運行時所需的各類特性

  properties
    setting:引入log4j日誌配置
    typeAliases:配置類型別名
    envrionments:配置運行的環境
    transactionManager:配置事務管理(JDBC)
    dataSource:配置數據源(POOLED:mybatis自帶的數據源;JNDI:基於tomcat的數據源)
    mappers:引入映射文件,告訴mybatis去哪裏找到SQL映射文件。
    mapper標籤:是映射文件的根元素,只有一個屬性namespace-->用於區分不一樣的mapper,是全局惟一

 

五、掌握SQL映射文件(或者使用自動生成SQL映射文件的插件)

  5.1select標籤:表示查詢語句

       id屬性:該命名空間下惟一標識符。
         resultType屬性:表示sql語句返回值類型。

        本質是相同,都是Map數據結構,但不能同時存在。

  5.2resultType與resultMap

        resultType:直接表示返回類型,包括基本數據類型和複雜數據類型。

        resultMap:應用場景通常是:數據庫字段信息與對象屬性不一致或者須要作複雜的聯合查詢,以便自由控制映射結構。

六、掌握MyBatis緩存

  一級緩存:是mybatis自帶的本地緩存,做用範圍爲session的區域,當session flush或者close以後,該session中全部的cache就會被清空;

  二級緩存:全局緩存,她超出了session範圍,能夠被全部的SQLSession共享,開啓它只須要mybatis的核心配置文件(mybatis-config.xml)的setting中設置便可; 

      2.1) <settings>
          <setting name="cacheEnabled" value="true"/>
        </settings>
      2.2)默認是未開啓二級緩存,須要手動開啓。另外,它的做用域是針對mapper的namespace而言的,及只有在此namespace的查詢才能共享這個cache。
        <mapper namespace="com.kgc.dao.UserMapper">
          <!---cache配置-->
          <cache eviction="fifo" flushInterval="60000" size="512" readOnly="true"/>
        </mapper>
      2.3)在mapper文件配置支持cache後,若是須要對個別查詢進行調整,能夠單獨設置cache
        <select id="getUserList" resultType="User" useCache="true">

七、Dao上機操做

    實現多參數傳遞:

        @Param註解

        通常超過4個以上的參數,最好封裝成對象入參 或者 map

    insert、update、delete操做要注意什麼:

        7.2.1接口方法的返回值爲int類型,表示執行sql語句影響的行數;

        7.2.2均沒有resultType屬性;

    事務處理:

        7.3.1factory.openSession(faclse); 手動提交事務;

        7.3.2session.commit(); 提交事務

        7.3.3session.rollback(); 回滾事務

    一對多的操做:使用association

    多對一的操做:使用collection

 

八、掌握動態SQL

  if:利用if實現簡單的條件選擇;

  choose(when, otherwise):至關於Java中的switch語句,一般與when和otherwise搭配使用;

  where:簡化SQL語句中的where的條件判斷;

  set:解決動態更新語句;

  trim:能夠靈活地除去多餘的關鍵字;

  foreach:迭代一個集合;

九、掌握MyBatis框架的優缺點和其使用場合

  9.1MyBatis框架的特色:

      9.1.1與jdbc相比,減小了50%以上的代碼;

      9.1.2Mybatis至關靈活,不會對應的應用程序或者數據庫的現有設計強加任何影響,

        SQL寫在MXL裏,從代碼中完全分離,既下降耦合度,又便於統一管理和優化

  9.2Mybatis框架的缺點

      9.2.1SQL語句的編寫工做量比較大,對開發人員編寫SQL語句的功底有必定的要求;

      9.2.2SQL語句依賴於數據庫,致使數據庫的移植性比較差,不能隨意更換數據庫;

  9.3框架試用場合

      9.3.1MyBatis專一於SQL自己,是一個足夠靈活的DAO層解決方案;

      9.3.2對性能要求很高的項目,或者需求變化比較多的項目,如互聯網項目,MyBatis將是不錯的選擇;

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

還在完善中。。。

相關文章
相關標籤/搜索