MyBatis中基於別名typeAliases的設置

MyBatis 別名typeAliases的設置

第一種:通過在配置文件中typeAlias節點設置type的方式

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 設置別名 -->
    <typeAliases>
        <!-- type指的是javabean的完全限定名   alias就是指代別名-->
        <typeAlias alias="student" type="cn.entity.Student" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc的事務 -->
            <transactionManager type="JDBC" />
            <!-- 使用自帶的連接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="test" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/dao/StudentDAO.xml" />
    </mappers>
</configuration>

通過這種方式設置別名在以後的操作是如果用到瞭某個javabean的完全限定名的時候我們就可以使用alias設置的值來代替,從而簡化瞭編程。

第二種方式:通過在配置文件中typeAliases節點中設置package 的方式

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 設置別名 -->
    <typeAliases>
        <!-- 通過package, 可以直接指定package的名字, mybatis會自動掃描你指定包下面的javabean, 並且默認設置一個別名,默認的名字為: 
            javabean 的首字母小寫的非限定類名來作為它的別名 -->
        <package name="cn.entity" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc的事務 -->
            <transactionManager type="JDBC" />
            <!-- 使用自帶的連接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="test" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/dao/StudentDAO.xml" />
    </mappers>
</configuration>

通過這種方式更加簡化瞭編程,因為在實際開發中會有很多的javabean,這裡隻需要指定這些javabean所在的包就行瞭,那麼默認他的別名是javabean 的首字母小寫的非限定類名來作為它的別名。

第三種:通過註解的方式@Alias

/**
 * 學生實體類
 * @author hyj
 *
 */
@Alias(value="student")
public class Student {
     private Integer id;//編號
     private Integer age;//年齡
     private String name;//姓名
    public Student() {
    }
    public Student(Integer id, Integer age, String name) {
        super();
        this.id = id;
        this.age = age;
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", age=" + age + ", name=" + name + "]";
    }
    
}

mybatis的typeAliases別名和註解理解

一、別名(從mapper那裡尋找類換到瞭從mybatis-config那裡找)

1.修改beammapper.xml

2.修改全局配置mybatis-config.xml (新增瞭別名)

3.包的別名

會自動識別這個包下小寫開頭的類.

二、別名的好與壞

好處是可以簡略地直接用小寫開頭的類名來用,更簡潔

壞處是如果項目一多,類一多起來,就不好在beanmapper來ctrl來查找到對應的類

這裡一個解決方法是別名的時候換成包的別名,但是依舊治標不治本.

所以這時候推薦使用註解

三、註解的使用

在每個beam包下使用註解來識別這個類

如:

這裡取的別名跟上面的配置的不一樣,會報錯找不到category這個類

因為的把類取瞭個不一樣的別名,

這時候改回正確的就可以正常運行瞭

四、一些知識點

mybatis-config.xml

properties:屬性集(引入外部資源)

resource:加載類路徑下的資源

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

mappers:加載已經寫好的sql映射配置文件並註冊到全局配置文件

settings配置(基於全局特性)

typealias別名

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: