ssm-mybatis進階

ssm-mybatis進階

簡介

ssm-mybatis入門後,理解一下進階概念,從mybatis配置和sql映射器兩大方向探索。

config配置文件

configuration配置比較多,這裏選一些經常使用的配置來舉例。
須要注意的是,配置項必須按照規定的順序進行配置,不然會出現匹配錯誤:
  1. 屬性(properties):屬性能夠在外部進行配置,並能夠進行動態替換。
  2. 在resources目錄下建立 db.properties配置文件,並配置數據庫鏈接參數:

    mybatis-config.xml配置文件中,用引入外部properties方式,配置db鏈接參數,使用符號: ${}

    上圖方式一和方式二還能夠混合使用,若是同一屬性都有配置方式一會覆蓋方式二屬性。驗證能夠正確鏈接到數據庫:
  3. 類型別名(typeAliases):類型別名可爲 Java 類型設置一個縮寫名字。 它僅用於 XML 配置,意在下降冗餘的全限定類名書寫。
    • typeAlias: 爲單個Java類設置別名
    • package: 爲包名下的全部類設置別名,默認爲其類名對應小寫
    設置完別名後,在映射文件中進行配置:

    驗證能夠正確鏈接到數據庫:
  4. 環境配置(environments):
  5. MyBatis 能夠配置成適應多種環境,這種機制有助於將 SQL 映射應用於多種數據庫之中, 現實狀況下有多種理由須要這麼作。 例如,開發、測試和生產環境須要有不一樣的配置;或者想在具備相同 Schema 的多個生產數據庫中使用相同的 SQL 映射。還有許多相似的使用場景。 不過要記住:儘管能夠配置多個環境,但每一個 SqlSessionFactory 實例只能選擇一種環境。 因此,若是你想鏈接兩個數據庫,就須要建立兩個 SqlSessionFactory 實例,每一個數據庫對應一個。sql

  6. 映射器(mappers):
  7. 映射器主要用來告訴mybatis去哪裏找sql語句的。mapper有四種配置方法,其中用包名的形式我的以爲更簡單,可是性能可能會差一些

mapper映射文件

MyBatis 的真正強大在於它的語句映射,這是它的魔力所在。因爲它的異常強大,映射器的 XML 文件就顯得相對簡單。 若是拿它跟具備相同功能的 JDBC 代碼進行對比,你會當即發現省掉了將近 95% 的代碼。MyBatis 致力於減小使用成本,讓用戶能更專一於 SQL 代碼。
  1. select: 最經常使用的sql語句,下面看幾個簡單例子
  2. 首先在UserMapper中,增長一個接口:
    public interface UserMapper {
            ...
            User getById(int id);
            ...
    }

    • 示例一:

    • sql中直接使用字段別名映射到POJO對象屬性。
    • 示例二:
    使用resultMap對將數據庫字段名映射到POJO對象屬性,resultMap和resultType只能二選一不能同時使用。

    查詢返回數據除了用pojo接收,還能夠用map接收,map能夠說是萬能的,特別是在字段較多的複雜場景,優點很明顯。
    • 示例三:
    增長接口:

    編寫映射:

    編寫測試:

    查看結果:

  3. insertinsert,update 和 delete 的實現很是類似,下面舉例說明
  4. 增長接口:

    編寫映射:pojo和map均可以插入,map更加靈活

    編寫測試:記得commit才生效

    查看結果:兩種方式都正確寫入數據

  5. update:
  6. 增長接口:

    編寫映射:pojo和map均可以,map更加靈活

    編寫測試:記得commit才生效

    查看結果:

  7. delete:
  8. 增長接口: void delete(int id);
    編寫映射:

    編寫測試:記得commit才生效

    查看結果:
相關文章
相關標籤/搜索