1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <properties resource="jdbc.properties"> 6 </properties> 7 <typeAliases> 8 <typeAlias alias="Role" type="chapter2.pojo.Role" /> 9 </typeAliases> 10 11 <environments default="development"> 12 <environment id="development"> 13 <transactionManager type="JDBC"> 14 <property name="autoCommit" value="false" /> 15 </transactionManager> 16 <dataSource type="POOLED"> 17 <property name="driver" value="${driver}" /> 18 <property name="url" value="${url}" /> 19 <property name="username" value="${username}" /> 20 <property name="password" value="${password}" /> 21 </dataSource> 22 </environment> 23 </environments> 24 25 <mappers> 26 <mapper resource="chapter2\mapper\RoleMapper.xml" /> 27 </mappers> 28 </configuration>
Mybatis的XML配置文件定义了许多配置标签:比如 <configuration> <properties> <settings> <typeAliases> ....等标签。
这些标签是有层次结构的,顺序不能乱。比如,<properties>标签应该放在 <typeAliases> 标签前面。
上面的第5行<properties>标签 通过 resource 指定一个外部jdbc配置文件,这样在16-21行配置 数据源 的时候,就可以使用 变量 来引用 外部jdbc配置文件中定义的值了,从而方便切换数据库配置。
外部jdbc配置文件如下:
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=xxxx
下面来重点解释:操作数据库的XML配置文件RoleMapper.xml 和 接口RoleMapper 以及POJO类RoleMapper之间的一些关系:
RoleMapper 接口中定义的getRole方法:
public Role getRole(Long id);
RoleMapper.xml配置文件中与该方法对应的SQL语句:
<select id="getRole" parameterType="long" resultType="Role"> select id, role_name as roleName, note from t_role where id = #{id} </select>
id 用来唯一标明这条 select 语句。它与RoleMapper.xml中 <mapper namespace>标签内容组合在一起,唯一标识了 这条 select 操作语句。这里的resultType="Role","Role"是在mybatisConfig.xml中定义的别名。