经典三层框架初识--一.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>

官方文档给我们的是下面这种表达式结构的模式,不是我们是用字符串手动输入下面四个参数 .如果我们更换数据库的话,就会不方便.

经典三层框架初识--一.Mybatis(上)(对上补充)
我们以前写过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>

 

②.关于别名标签

我们先看一下映射配置的官方文档

经典三层框架初识--一.Mybatis(上)(对上补充)

 我们发现这里红色框住的内容就是个类名,而我们之前写的都是全限定名称,那肯定有方法让我们在这里写类名即可.

下面介绍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>