<?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="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/itheima/dao/IUserDao.xml"/>
    </mappers>
</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>
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="123"/>
    </properties>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <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="com/itheima/dao/IUserDao.xml"/>
    </mappers>
</configuration>
可以在标签内配置连接数据库的信息。也可以通过属性引用外部配置文件信息。
resource属性:用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
下面这段代码是可以放在外部的
<properties>
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="123"/>
    </properties>
把jdbcConfig.properties放到resources目录下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis
jdbc.username=root
jdbc.password=123
在SqlMapConfig.xml中
<configuration>

    <properties resource="jdbcConfig.properties"></properties>
    <environments default="mysql">
        <environment id="mysql">
        ......
resource属性:常用的,用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
url属性:是要求按照Url的写法来写地址。
URL:Uniform Resource Location:统一资源定位符,它是可以唯一标识一个资源的位置。
它的写法:
http://localhost:3306/mybatisserver/demo1Servlet
协议    主机 端口    URI
URI:Uniform Resource Identifier:统一资源标识符,它是在应用中可以唯一定位一个资源的。

<properties url="file:///D:/IdeaProjects/jdbcConfig01.properties"></properties>

而且SqlMapConfig.xml中的mappers标签可以这样写:
<mappers>
        <!--<mapper resource="com/itheima/dao/IUserDao.xml"/>-->
        <mapper url="file:///D:/IdeaProjects/day02_eesy_01mybatisDemo/src/main/resources/com/itheima/dao/IUserDao.xml"/>
    </mappers>




这是因为mybatis使用了别名,我们也可以使用typeAliases配置别名,它只能配置domain中类的别名。

但是我在自己做的时候,typeAliases放在了properties前面了,导致报错,
这种错如果不是因为看视频比着老师做,出错还是很难找的。
<properties resource="jdbcConfig.properties"></properties>
    <typeAliases>
        <typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>
    </typeAliases>
1、如果出现<properties> 则<typeAliases>必须跟在<properties>后面
2、如果没有<properties>,<typeAliases>必须放在SqlMapConfig.xml文件的最上面
1、如果出现<properties>,则<typeAliases>必须放在<properties>后面。
还有一点看的博客 2、如果没有<properties>,则<typeAliases>必须放在SqlMapConfig.xml文件的最上面。

<configuration>

    <properties resource="jdbcConfig.properties"></properties>
    <!--使用typeAliases配置别名,它只能配置domain中类的别名-->
    <typeAliases>
        <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就不再区分大小写。-->
        <typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>
    </typeAliases>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>


<configuration>

    <properties resource="jdbcConfig.properties"></properties>
    <!--使用typeAliases配置别名,它只能配置domain中类的别名-->
    <typeAliases>
        <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就不再区分大小写。-->
        <!--<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>-->

        <!--用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
        <package name="com.itheima.domain"></package>
    </typeAliases>
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>


分隔
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--<mapper resource="com/itheima/dao/IUserDao.xml"/>-->
        <!--package标签是用于指定dao接口所在的包,当指定了之后就不需要再写mapper以及resource或者class了-->
        <package name="com.itheima.dao"></package>
    </mappers>
</configuration>