连接数据库时,如果将数据库配置在主配置文件中,修改数据库密码等操作后,需要改主配置文件,所以将数据库单独配置一个文件,在主配置文件中引入数据库配置文件。
数据库配置文件:jdbcConfig.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy
jdbc.username=root
jdbc.password=root
在主配置文件中:
配置properties
可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息,两种方式,取一种。
resource属性: 常用的
用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
<properties resource="jdbcConfig.properties"></properties>
url属性:(不常用)
是要求按照Url的写法来写地址
<properties url="file:///E:/IdeaProjects/mybatis/day02_mybatis_CRUD/src/main/resources/jdbcConfig.properties"></properties>
<!--配置数据库的四个基本信息,key与jdbc配置文件中的key保持一致-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。在全网中定位。
它的写法:
http: / /localhost: 8080 /mybatisserver/demo1Servlet
协议 主机 端口 URI
URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。
在主配置文件中,使用typeAliases可以对domain包下的类起别名,从而在IuserDao.xml等配置中,简化了书写全类名的操作。
typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就不再区分大小写
<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias>
但是当domain中的类过多时,使用起别名的操作还是很麻烦,所以有了package
用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写。
<package name="com.itheima.domain"></package>
在mappers配置中,如果有很多dao接口,那需要写多个mapper所以可以在mappers中也写package,就不用写多个mapper了
<mappers>
<!--<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>-->
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
<package name="com.itheima.dao"></package>
</mappers>
所以主配置文件的简写形式为:
<?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">
<!-- 以上是约束 -->
<!--mybatis的主配置文件-->
<configuration>
<!-- 配置properties可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息-->
<properties resource="jdbcConfig.properties"></properties>
<!--<properties url="file:///E:/IdeaProjects/mybatis/day02_mybatis_CRUD/src/main/resources/jdbcConfig.properties"></properties>-->
<typeAliases>
<!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写-->
<package name="com.itheima.domain"></package>
</typeAliases>
<!--配置环境-->
<environments default="mysql"><!--default选择使用的环境-->
<!--配置mysql的环境-->
<environment id="mysql">
<!--配置事物的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置数据库的四个基本信息,key与jdbc配置文件中的key保持一致-->
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置-->
<mappers>
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
<package name="com.itheima.dao"></package>
</mappers>
</configuration>