Mybatis配置文件
一 MyBatis配置文件结构
-configuration
-properties(属性)
-property
-settings(全局配置参数)
-setting
-plugins(插件)
-plugin
-typeAliases(别名)
-typeAliase
-package
-environments(环境)
-environment
-transactionManager(事务管理)
-dataSource(数据源)
-mappers(映射器)
-mapper
-package
二 MyBatis配置文件应用
2.1 properties属性值定义。
properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用${name}获取值。
例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。
2.2 environments可以为MyBatis配置数据环境。
<environments default="mysql">
<environment id="mysql">
<!-- JDBC:使用JDBC的提交和回滚 MANAGED:不做事务处理-->
<transactionManager type="JDBC"></transactionManager>
</environment>
</environments>
连接词
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<!-- 连接池设置 -->
<dataSource type="POOLED">
<!-- 数据源设置... -->
</dataSource>
</environment>
</environments>
dataSource的type属性:
POOLED:使用连接池管理连接,使用MyBatis自带的连接池。
UNPOOLED:不使用连接池,直接由JDBC连接。
JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理。
2.3
用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:
2.4 映射文件resultMap
标签的作用的自定义映射关系。
MyBatis可以将数据库结果集封装到对象中,是因为结果集的列名和对象属性名相同:
当POJO属性名和数据库列名不一致时,MyBatis无法自动完成映射关系。如:
此时有两种解决方案:
第一种 Sql语句的查询字段起与POJO属性相同的别名
<select id="findAll" resultType="com.itbaizhan.pojo.Teacher">
select tid as id,tname as teacherName from teacher;
</select>
第二 自定义映射关系
在映射文件中,使用自定义映射关系:
<!-- id:自定义映射名 type:自定义映射的对象类型 -->
<resultMap id="teacherMapper" type="com.itbaizhan.pojo.Teacher">
<!-- id定义主键列 property:POJO属性名 column:数据库列名 -->
<id property="id" column="tid"></id>
<!-- result定义普通列 property:POJO属性名 column:数据库列名 -->
<result property="teacherName" column="tname"></result>
</resultMap>
在标签中,使用resultMap属性代替resultType属性,使用自定义映射关系。
<select id="findAll" resultMap="teacherMapper">
select * from teacher
</select>