文章目錄
- 1.配置決議(優化)
- 1.1.環境配置
- 1.2.屬性(properties)
- 2.型別別名
- 2.1.為物體類取別名
- 3.映射器(mappers)
1.配置決議(優化)
1.1.環境配置
- MyBatis 可以配置成適應多種環境,這種機制有助于將 SQL 映射應用于多種資料庫之中(比如需要不同的環境,mysql和oracle)
- 盡管可以配置多個環境,但每個 SqlSessionFactory 實體只能選擇一種環境,
- 如果你想
連接兩個資料庫,就需要創建兩個 SqlSessionFactory 實體,每個資料庫對應一個,
1.2.屬性(properties)
我們可以通過perperties屬性實作參考組態檔,
這些屬性都是可以外部配置且可以動態替換的,既可以在典型的java屬性檔案中配置,也可以通過properties元素的子元素類傳遞(db.properties)
優化組態檔(外接組態檔)具體步驟
1)第一步 :在resouces目錄下新建一個db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&useSSL=false
username=root
password=*******
2)第二步 : 將檔案匯入properties 組態檔 mybatis-config.xml內容如下:
<configuration>
<!--匯入properties檔案-->
<properties resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
也可以這么寫:
<properties resource="db.properties">
<property name = “username”value="root"/>
<property name = "pwd" value = "******"/>
</properties>
注意點:
- 可以直接引入外部檔案
- 可以在其中增加一些屬性配置
- 當
db.properties中的屬性和properties中屬性沖突時,以db.properties中為準,
2.型別別名
- 型別別名是為Java型別設定一個短的名字
- 存在的意義僅在于用來減少類完全限定名的冗余
2.1.為物體類取別名
第一種方法:
為 Java 型別設定一個縮寫名字, 它僅用于 XML 配置,意在降低冗余的全限定類名書寫
<typeAliases>
<typeAlias type="com.org.pojo.User" alias="User"/>
</typeAliases>
第二種方法:也可以指定一個包名,MyBatis 會在包名下面搜索需要的 Java Bean,比如:
<typeAliases>
<package name="com.org.pojo"/>
<typeAilases>
掃描一個包
可以指定一個包名,MyBatis會在包名的下面搜索需要的java bean ,比如:掃描一個物體包,它的默認別名就是這個類的類名,首字母小寫,
如何選擇?:
- 在物體類比較少的時候,使用第一種方式
- 如果物體類十分多,建議使用第二種
- 第一種可以DIY別名,第二種則不行,如果非要改,需要在物體類上加上注解
package com.org.pojo;
//物體類
@Alias("aaa")
public class User {
private int id;
private String name;
private String pwd;
public User(int id, String name,String pwd){
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
3.映射器(mappers)
- 每寫一個Mapper類就要注冊一次,
- 引入資源方式(推薦還是使用第一種方式,保險一點)
<!-- 使用相對于類路徑的資源參考 -->
<mappers>
<mapper resource = "com/org/Mapper/UserMapper.xml"/>
</mappers>
<!--
使用映射器介面實作類的完全限定類名
需要組態檔名稱和介面名稱一致,并且位于同一目錄下
-->
<mappers>
<mapper class="com.org.Mapper.UserMapper"/>
<mappers/>
<!--
將包內的映射器介面實作全部注冊為映射器
但是需要組態檔名稱和介面名稱一致,并且位于同一目錄下
-->
<mappers>
<package name="com.org.dao"/>
<mappers/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/355706.html
標籤:其他
