亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用MyBatis全局配置文件

發布時間:2021-07-09 13:38:17 來源:億速云 閱讀:153 作者:chen 欄目:開發技術

這篇文章主要講解了“如何用MyBatis全局配置文件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何用MyBatis全局配置文件”吧!

目錄
  • MyBatis全局配置文件

    • settings 設置

    • typeAliases 類型命名

    • 存在的問題:

    • @Alias("")

      • environments 環境

      • transactionManager 事務管理器

      • JDBC:JdbcTransactionFactory

      • databaseIdProvider 數據庫廠商標識

    • DB_VENDOR

      • 變短

      • sql映射文件

  • 總結

    MyBatis全局配置文件

    MyBatis 的配置文件包含了影響 MyBatis 行為甚深的設置(settings)和屬性(properties)信息。文檔的

    頂層結構如下:

    • configuration 配置

    • properties 屬性

    • settings 設置

    • typeAliases 類型命名

    • typeHandlers 類型處理器

    • objectFactory 對象工廠

    • plugins 插件

    • environments 環境

    • environment 環境變量

    • transactionManager 事務管理器

    • dataSource 數據源

    • databaseIdProvider 數據庫廠商標識

    • mappers 映射器

    properties 屬性

    mybatis 可以使用properties來引入外部properties配置文件的內容

    resource:引入類路徑下的資源

    url:引入網絡路徑或者磁盤路徑下的資源

    <properties resource="dbconfig.properties"></properties>

    如果屬性在不只一個地方進行了配置,那么 MyBatis 將按照下面的順序來加載:

    • 在 properties 元素體內指定的屬性首先被讀取。

    • 然后根據 properties 元素中的 resource 屬性讀取類路徑下屬性文件或根據 url 屬性指定的路徑讀取屬性文件,并覆蓋已讀取的同名屬性。 – 最后讀取作為方法參數傳遞的屬性,并覆蓋已讀取的同名屬性。

    settings 設置

    這是 MyBatis 中極為重要的調整設置,它們會改變MyBatis 的運行時行為。

    setting包含很多重要的設置項

    setting:用來設置每一個設置項

    name:設置項名

    value:設置項的取值

    mapUnderscoreToCamelCase:駝峰命名 last_name -> lastName

    <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>

    如何用MyBatis全局配置文件

    typeAliases 類型命名

    typeAliases:可以批量設置別名這個包下的每一個類

    別名不區分大小寫

    創建一個默認的別名,就是簡單類名小寫

    typeAlias:為某個java類型起別名

    type:指定要起別名的類型全類名;默認別名就是類名小寫:employee

    alias:指定新的別名

    如何用MyBatis全局配置文件

    package:為某個包下的所有類批量起別名

    name:指定包名(為當前包下以及下面所有的后代包的每一個類都起一個默認的別名(類名小寫))

    如何用MyBatis全局配置文件

    存在的問題:

    假設bean包下有一個類Employee,同時在bean包下有一個子包也有一個類叫Employee,此時這兩個包的類名就會沖突,因此還可以使用注解的放上為類創建別名

    @Alias("")

    public class Employee{}

    如何用MyBatis全局配置文件

    值得注意的是,MyBatis已經為許多常見的 Java 類型內建了相應的類型別名。它們都是大小寫不敏感的,我們在起別名的時候千萬不要占用已有的別名。

    如何用MyBatis全局配置文件

    environments 環境

    mybatis可以配置多種環境 default指定使用某種環境,可以達到快速切換

    environments:配置一個具體的環境信息;必須有兩個標簽,id代表當前環境的唯一標識

    transactionManager 事務管理器

    type:事務管理器的類型 [JDBC(使用了 JDBC 的提交和回滾設置,依賴于從數據源得到的連接來管理事務范圍。)|MANAGED(不提交或回滾一個連接、讓容器來管理事務的整個生命周期(比如 JEE應用服務器的上下文))]

    JDBC:JdbcTransactionFactory

    自定義事務管理器 實現TransactionFactory接口即可

    dataSource 數據源

    type:數據源的類型 [UNPOOLED(不使用連接池)|POOLED(使用連接池)|JNDI(在EJB 或應用服務器這類容器中查找指定的數據源)]

    自定義數據源 實現DataSourceFactory接口

    實際開發中我們使用Spring管理數據源,并進行事務控制的配置來覆蓋上述配置

    如何用MyBatis全局配置文件

    databaseIdProvider 數據庫廠商標識

    databaseIdProvider: 可以根據不同的數據庫廠商執行不同的語句。

    type:數據庫類型 DB_VENDOR

    作用就是得到數據庫廠商標識(驅動自帶的),mybatis就能根據數據庫廠商標識來執行不同的sql

    MYSQL Oracle SQL Server

    value:為標識起一個別名,方便SQL語句使用databaseId屬性引用

    如何用MyBatis全局配置文件

    如何用MyBatis全局配置文件

    DB_VENDOR

    會通過 DatabaseMetaData#getDatabaseProductName() 返回的字符串進行設置。由于通常情況下這個字符串都非常長而且相同產品的不同版本會返回不同的值,所以最好通過設置屬性別名來使其

    變短

    MyBatis匹配規則如下:

    • 如果沒有配置databaseIdProvider標簽,那么databaseId=null

    • 如果配置了databaseIdProvider標簽,使用標簽配置的name去匹配數據庫信息,匹配上設置databaseId=配置指定的值,否則依舊為null

    • 如果databaseId不為null,他只會找到配置databaseId的sql語句

    • MyBatis 會加載不帶 databaseId 屬性和帶有匹配當前數據庫databaseId 屬性的所有語句。如果同時找到帶有 databaseId 和不帶databaseId 的相同語句,則后者會被舍棄。

    mappers 映射器

    mapper:注冊一個sql映射

    注冊配置文件

    resource:引用類路徑下的sql映射文件

    url:用網路路徑下的或者磁盤路徑下的sql映射文件

    注冊接口

    class:引應用接口

    • 接口映射文件,映射文件名必須和接口同名,并且放在同一個目錄下

    • 沒有sql映射文件,所有的sql利用注解寫在接口上

    注解寫在接口上

    推薦:比較重要和復雜額Dao接口寫sql映射文件,不重要的簡單的為了開發快速可以使用注解

    如何用MyBatis全局配置文件

    package:批量注冊

    如何用MyBatis全局配置文件

    sql映射文件

    namespace:名稱空間;指定為接口的全類名

    id:唯一標識

    resultType:返回值類型

    #{id}:從傳遞過來的參數中取出id值

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="school.xauat.mybatis.dao.EmployeeMapper">
        <select id="getEmpById" resultType="employee" >
            select * from tbl_employee where id = #{id}
        </select>
        <select id="getEmpById" resultType="employee" databaseId="mysql">
            select * from tbl_employee where id = #{id}
        </select>
        <select id="getEmpById" resultType="employee" databaseId="oracle">
            select * from tbl_employee where id = #{id}
        </select>
    </mapper>

    總結

    1、接口是編程

    原生: Dao -----> DaoImpl

    Mybatis: Mapper -----> xxMapper.xml

    2、SqlSession代表和數據庫的一次會話,用完必須關閉

    3、SqlSession和connection一樣,都是非線程安全的。每次使用都應該獲取新的對象

    4、mapper接口沒有實現類,但是Mybatis會為這個接口生成一個代理對象(將接口和xml進行綁定)

    EmployeeMapper empMapper = SqlSession.getMapper(Employee.class);

    5、兩個重要的配置文件

    mybatis的全局配置文件;包含數據庫連接池信息,事務管理器信息,系統運行信息

    sql映射文件:保存了每一個SQL語句的映射信息

    將sql抽取出來

    感謝各位的閱讀,以上就是“如何用MyBatis全局配置文件”的內容了,經過本文的學習后,相信大家對如何用MyBatis全局配置文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    宁阳县| 嘉义县| 滦南县| 余江县| 高要市| 杭锦后旗| 灵丘县| 达日县| 绵阳市| 建德市| 剑川县| 浑源县| 建瓯市| 时尚| 遵义市| 微博| 阜阳市| 庆阳市| 昆山市| 五华县| 阳山县| 犍为县| 绿春县| 托克逊县| 鄂托克前旗| 福清市| 祁门县| 肥东县| 永定县| 秦皇岛市| 张家口市| 宁城县| 宜良县| 鹤峰县| 舒兰市| 唐海县| 邓州市| 庆阳市| 建湖县| 达州市| 大化|