最近在学习mybatis,记录一下mybatis-config.xml文件的几种配置方式。
1.直接写死在mybatis-config.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>
<typeAliases><!--别名-->
<typeAlias alias="role" type="com.learn.ssm.chapter3.pojo.Role"></typeAlias>
</typeAliases>
<!--数据库环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--映射文件-->
<mappers>
<mapper resource="com/learn/ssm/chapter3/mapper/RoleMapper.xml"/>
</mappers>
</configuration>
2.使用properties属性标签添加property子元素,通过引用的方式获取参数:
<?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="database.driver" value="com.mysql.jdbc.Driver"></property>
<property name="database.url" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8"></property>
<property name="database.username" value="root"></property>
<property name="database.password" value="root"></property>
</properties>
<typeAliases><!--别名-->
<typeAlias alias="role" type="com.learn.ssm.chapter3.pojo.Role"></typeAlias>
</typeAliases>
<!--数据库环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<!--映射文件-->
<mappers>
<mapper resource="com/learn/ssm/chapter3/mapper/RoleMapper.xml"/>
</mappers>
</configuration>
3.通过外部配置文件.properties的方式获取参数:
(1)与mybatis-config.xml同级目录下创建jdbc.properties配置文件,文件代码如下:
database.driver = com.mysql.jdbc.Driver
database.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8
database.username =root
database.password =root
(2)mybatis-config.xml文件通过properties标签的resource引入.properties配置文件,代码如下:
<?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 alias="role" type="com.learn.ssm.chapter3.pojo.Role"></typeAlias>
</typeAliases>
<!--数据库环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${database.driver}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<!--映射文件-->
<mappers>
<mapper resource="com/learn/ssm/chapter3/mapper/RoleMapper.xml"/>
</mappers>
</configuration>
总结:项目开发中,最常用的是第三种方式,通过外部.properties配置文件的方式管理参数,方便维护,特别是当参数过多的时候,就更能体现其优势了,如果将参数全部写在xml文件中,势必会造成mybatis-config.xml文件的代码臃肿,不便于管理和维护。
注:其中url参数后面的useUnicode=true&characterEncoding=utf8是为了解决数据库中文乱码问题。