1、数据库的属性配置文件

 把数据库连接信息放到一个单独的文件中。 和mybatis主配置文件分开。
 目的是便于修改,保存,处理多个数据库的信息。

1)在resources目录中定义一个属性配置文件, xxxx.properties ,例如 jdbc.properties
        在属性配置文件中, 定义数据,格式是 key=value 

key: 一般使用 . 做多级目录的, 例如 jdbc.mysql.driver  
jdbc.properties:         

          jdbc.driver=com.mysql.jdbc.Driver
          jdbc.url=jdbc:mysql//.....
          jdbc.username=root
          jdbc.password=123456

2)在mybatis的主配置文件,使用<property> 指定文件的位置

<!--指定properties文件的位置,从类路径根开始找文件-->
    <properties resource="jdbc.properties" />

在需要使用值的地方, ${key}

<dataSource type="POOLED">
   <!--数据库的驱动类名-->
   <property name="driver" value="${jdbc.driver}"/>
   <!--连接数据库的url字符串-->
   <property name="url" value="${jdbc.url}"/>
   <!--访问数据库的用户名-->
   <property name="username" value="${jdbc.user}"/>
   <!--密码-->
   <property name="password" value="${jdbc.passwd}"/>
</dataSource>

 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文件的位置,从类路径根开始找文件-->
    <properties resource="jdbc.properties" />

    <!--settings:控制mybatis全局行为-->
    <settings>
        <!--设置mybatis输出日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>


    <environments default="mydev">
        <environment id="mydev">
            <!--
              transactionManager:mybatis提交事务,回顾事务的方式
                 type: 事务的处理的类型
                     1)JDBC : 表示mybatis底层是调用JDBC中的Connection对象的,commit, rollback
                     2)MANAGED : 把mybatis的事务处理委托给其它的容器(一个服务器软件,一个框架(spring))
            -->
            <transactionManager type="JDBC"/>
            <!--
               dataSource:表示数据源,java体系中,规定实现了javax.sql.DataSource接口的都是数据源。
                          数据源表示Connection对象的。

               type:指定数据源的类型
                  1)POOLED: 使用连接池, mybatis会创建PooledDataSource类
                  2)UPOOLED: 不使用连接池, 在每次执行sql语句,先创建连接,执行sql,在关闭连接
                              mybatis会创建一个UnPooledDataSource,管理Connection对象的使用
                  3)JNDI:java命名和目录服务(windows注册表)
            -->
            <dataSource type="POOLED">
                <!--数据库的驱动类名-->
                <property name="driver" value="${jdbc.driver}"/>
                <!--连接数据库的url字符串-->
                <property name="url" value="${jdbc.url}"/>
                <!--访问数据库的用户名-->
                <property name="username" value="${jdbc.user}"/>
                <!--密码-->
                <property name="password" value="${jdbc.passwd}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- sql mapper(sql映射文件)的位置-->
    <mappers>
        
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
        <mapper resource="com/bjpowernode/dao/OrderDao.xml" />

    </mappers>
</configuration>

2、mapper文件路径

第一种方式:

<mappers>
        <!--第一种方式:指定多个mapper文件-->
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
        <mapper resource="com/bjpowernode/dao/OrderDao.xml" />

        
</mappers>

第二种方式:

<mappers>

        <!--第二种方式: 使用包名
            name: xml文件(mapper文件)所在的包名, 这个包中所有xml文件一次都能加载给mybatis
            使用package的要求:
             1. mapper文件名称需要和接口名称一样, 区分大小写的一样
             2. mapper文件和dao接口需要在同一目录
        -->
        <package name="com.bjpowernode.dao"/>
       <!-- <package name="com.bjpowernode.dao2"/>
        <package name="com.bjpowernode.dao3"/>-->
</mappers>

3、对于 编译之后 target 文件夹中 没有 .xml 文件 和 .properties 文件

在pom.xml 中设置

<build>
    <resources>
      <resource>
        <directory>src/main/java</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>