1. 程式人生 > >經典三層框架初識--一.Mybatis(上)(對上補充)

經典三層框架初識--一.Mybatis(上)(對上補充)

關於上面的寫的入門案例的補充改進:

①.在我們的全域性配置檔案中

我們之前寫的全域性配置檔案是下面這個:mybatis.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>
  <properties resource="jdbc.properties"></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="UserMapper.xml"/>
  </mappers>
</configuration>

官方文件給我們的是下面這種表示式結構的模式,不是我們是用字串手動輸入下面四個引數 .如果我們更換資料庫的話,就會不方便.

我們以前寫過jdbc.properties這個配置檔案,那麼我們能不能把這個配置檔案引入到這個地方來?這樣以後我們就可以不修改這裡的全域性配置,只需要修改jdbc.properties這個屬性檔案就可以了 那前提是我們需要把這個屬性檔案載入進來,那如何載入呢? http://www.mybatis.org/mybatis-3/zh/configuration.html#properties 下的properties標籤的介紹  這些屬性都是可外部配置且可動態替換的,既可以在典型的 Java 屬性檔案中配置,亦可通過 properties 元素的子元素來傳遞  這裡案例將兩種方式合起來了               <properties resource="org/mybatis/example/config.properties">                   <property name="username" value="dev_user"/>                    <property name="password" value="F2Fa3!33TYyg"/>             </properties>  其實是             (1)<properties resource="org/mybatis/example/config.properties"></properties>             這裡的resource就是我們需要讀取的java屬性檔案             (2)<properties>                     <property name="username" value="dev_user"/>                       <property name="password" value="F2Fa3!33TYyg"/>                </properties>               我們用第一種.配置在上面,因為configuration裡面的標籤有順序.下面就按原來的表示式就可以了.下面是修改後的配置檔案.

<?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>
  	<!-- 載入外部屬性檔案 -->
  <properties resource="jdbc.properties"></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="UserMapper.xml"/>
  </mappers>
</configuration>

②.關於別名標籤

我們先看一下對映配置的官方文件

 我們發現這裡紅色框住的內容就是個類名,而我們之前寫的都是全限定名稱,那肯定有方法讓我們在這裡寫類名即可.

下面介紹typeAliases這個標籤,類型別名.注意,這個標籤是定義在全域性配置檔案中的,...切記,全域性配置檔案中標籤是有順序的

所以我們可以將原來的全域性配置檔案進一步修改:mybatis.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>
  	<!-- 載入外部屬性檔案 -->
    <properties resource="jdbc.properties"></properties>
    <typeAliases>
        <!-- 單個類型別名 -->
  	<!-- <typeAlias type="pojo.UserInfo" alias="userinfo"/> -->
  	<!-- 批量起別名  以包為單位,別名就是類名,不區分大小寫-->
      	<package name="pojo"/>
    </typeAliases>
    <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="UserMapper.xml"/>
   </mappers>
</configuration>

而對映配置檔案改為

<?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="adhs">
  <!-- 增刪改查  -->
 <!--  <insert id=""></insert>
  <update id=""></update>
  <delete id=""></delete> -->
  <select id="selectUser"  resultType="userinfo">
    select * from userinfo where uid = #{uid}
  </select>
</mapper>