MyBatis知識點複習-04全局配置文件的properties和alias的講解

MyBatis知識點複習-04全局配置文件的properties和alias的講解

這一講我們將介紹在SqlMapConfig文件裏配置properties和alias屬性,接下來你會看到他們的神奇之處:就是簡化SqlMapConfig.xml文件

上一篇:MyBatis知識點複習-03Dao與Mapper代理實現

下一篇:MyBatis知識點複習-05加載映射文件的幾種方式

一.properties文件配置

我們先來看一下目前爲止到當前章節我們的SqlMapConfig.xml文件已經變成這樣的了

<?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>
    <environments default="development">
        <environment id="development">
            <!-- 配置JDBC事務控制,由mybatis進行管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置數據源,採用dbcp連接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis複習"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="sqlMap/User.xml"></mapper>
        <mapper resource="sqlMap/UserMapper.xml"></mapper>
    </mappers>
</configuration>

這一章的內容還是比較輕鬆的,接下來請跟着我做。
首先在src目錄下創建文件db.properties,內容如下:

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis複習?useUnicode=true&amp;characterEncoding=utf8
name=root
password=123456

接下來在SqlMapConfig.xml文件裏的Configuration標籤下面的environments標籤前面寫上如下內容:

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

接下來我們把下面內容

  <property name="driver" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/mybatis複習"/>
  <property name="username" value="root"/>
  <property name="password" value="123456"/>

修改爲這樣:

   <property name="driver" value="${driverClass}$"/>
   <property name="url" value="${url}$"/>
   <property name="username" value="${username}$"/>
   <property name="password" value="${password}$"/>

注意name的值不要改這是由mybatis框架的屬性來決定的,然後value的值裏面按照我們在db.properties裏面的來寫。
下面我們來運行TestUser的Test方法測試一下
在這裏插入圖片描述
插入成功(根據前面的文章,如果你看過,那麼自然會知道爲什麼是插入操作了)

二.alias配置

在講解之前我希望給你一個淺顯的直觀的對改配置的認知:
在生活中,比如一個老外,他的名字賊長,叫亞力三大.洛夫斯基.諾娃.米奇.凱文佈雷.布爾格林;
我的媽好長,但是我們通常不會這麼叫對吧,我們可以給他起個小名,叫做小林,沒錯現在你知道了,alias配置就是爲了簡化名字給他起個別名而已,下面我們來開心的學習吧.
在UserMap.xml文件中有這麼一段:

<insert id="saveUser" parameterType="domain.User">
   insert into user (username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
</insert>

現在我覺得domain.User這個太長了,我給他起個別名,叫sss,操作如下:
在properties標籤下面加上下面內容

<!--alias是別名的意思,那麼typeAlias就是類型別名-->
<typeAliases>
        <typeAlias type="domain.User" alias="sss"></typeAlias>
</typeAliases>

接着將上面的UserMapper.xml的對應內容修改如下

<insert id="saveUser" parameterType="user">
   insert into user (username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
</insert>

測試發現成功:
在這裏插入圖片描述
其實這個地方如果不用別名用原名也是可以的,不過誰會這麼傻呢。
接下來還有另外的一種配置更加的厲害,我們發現在用typeAlias時每次都要爲一個類起一個別名,那如果有一堆類起別名呢,難道還要一個一個的寫一遍?於是我們有下面的解決辦法:

<typeAliases>
        <typeAlias type="domain.User" alias="user"></typeAlias>
</typeAliases>

將上面的這個改爲下面;

<typeAliases>
     <package name="domain"/>
</typeAliases>

對應的UserMapper.xml裏面的parameterType="domain.User"改爲parameterType="user"

這麼寫表示將domian包下面的所有類起一個別名,形式爲將類的第一個字母小寫,不過這一種方法與typealias相比起別名的形式比較固定,但是這是無足輕重的,這裏測試通過樂我就不貼圖了

上一篇:MyBatis知識點複習-03Dao與Mapper代理實現

下一篇:MyBatis知識點複習-05加載映射文件的幾種方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章