這些屬性都是可外部配置且可動态替換的,既可以在典型的 Java 屬性檔案中配置,亦可通過 properties 元素的子元素來傳遞。例如:
然後其中的屬性就可以在整個配置檔案中被用來替換需要動态配置的屬性值。比如:
這個例子中的 username 和 password 将會由 properties 元素中設定的相應值來替換。 driver 和 url 屬性将會由 config.properties 檔案中對應的值來替換。這樣就為配置提供了諸多靈活選擇。
屬性也可以被傳遞到 SqlSessionFactoryBuilder.build()方法中。例如:
如果屬性在不隻一個地方進行了配置,那麼 MyBatis 将按照下面的順序來加載:
在 properties 元素體内指定的屬性首先被讀取。
然後根據 properties 元素中的 resource 屬性讀取類路徑下屬性檔案或根據 url 屬性指定的路徑讀取屬性檔案,并覆寫已讀取的同名屬性。
最後讀取作為方法參數傳遞的屬性,并覆寫已讀取的同名屬性。
是以,通過方法參數傳遞的屬性具有最高優先級,resource/url 屬性中指定的配置檔案次之,最低優先級的是 properties 屬性中指定的屬性。
從MyBatis 3.4.2開始,你可以為占位符指定一個預設值。例如:
這個特性預設是關閉的。如果你想為占位符指定一個預設值, 你應該添加一個指定的屬性來開啟這個特性。例如:
也可以使用
":"
作為屬性鍵(e.g.
db:username
) 或者你也可以在sql定義中使用 OGNL 表達式的三元運算符(e.g.
${tableName != null ? tableName : 'global_constants'}
), 你應該通過增加一個指定的屬性來改變分隔鍵和預設值的字元。例如:
也可以使用下面方法配置DATASOURCE,建立mybatis-generator.properties檔案
建立application.yml檔案
建立mybatis-generator-config.xml檔案
感謝您的閱讀。如果感覺文章對您有用,麻煩您動動手指點個贊,以資鼓勵。謝謝!