mybatis中配置文件
一、dtd
它使用一系列的合法元素来定义文档结构。
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
此处不是我们关注的重点。
二、其余所有元素
<configuration><!-- 配置 -->
<properties /><!-- 属性 -->
<settings /><!-- 设置 -->
<typeAliases /><!-- 类型命名 -->
<typeHandlers /><!-- 类型处理器 -->
<objectFactory /><!-- 对象工厂 -->
<plugins /><!-- 插件 -->
<environments><!-- 配置环境 -->
<environment><!-- 环境变量 -->
<transactionManager /><!-- 事务管理器 -->
<dataSource /><!-- 数据源 -->
</environment>
</environments>
<databaseIdProvider /><!-- 数据库厂商标识 -->
<mappers /><!-- 映射器 -->
</configuration>
<configuration配置>:所有的配置都应该包括在这中间。
<properties >
属性标签中元素的内容,都可以使用外部文件引入,或者在<property>
子元素中指定。
如:
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
<settings>
是mybatis中极为关键的配置,它可以改变mybatis的行为,例如这之中的:
useGeneratedKeys 它允许 JDBC 支持自动生成主键,需要驱动支持。默认值为false。
mapUnderscoreToCamelCase 它表示驼峰命名法,开启后,例如数据库中字段:b_id,b_name映射到mybaitis中就是 bId 和 bName。节省起别名的操作。
<typeAliases />
可以给类完全限定名起别名,减少冗余。例如:
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
</typeAliases>
这就表示当引用,”domain.blog.Author“这个类的时候,使用 “Author”,可以达到一样的效果。但是建议在配置mapper文件的时候,类名还是用完全限定类名,这样方便打开查看类的属性。
也可以为一个包下所有类起别名,别名为类名的小写。比如:
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
<environments>
环境配置,顾名思义,”环境们“。mybatis可以配置多种环境 ,default指定使用某种环境。可以达到快速切换环境。
<environment>
:配置一个具体的环境信息;必须有两个标签;id代表当前环境的唯一标识
<transactionManager>
:事务管理器
type:事务管理器的类型JDBC(JdbcTransactionFactory)和
|MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口.type指定为全类名。
<dataSource>
:数据源;type:数据源类型UNPOOLED(UnpooledDataSourceFactory)
|POOLED(PooledDataSourceFactory)
|JNDI(JndiDataSourceFactory)
如果想要自己定义数据源,那么我们只要实现 DataSourceFactory 接口就可以了。
<databaseIdProvider />
数据库厂商标识,表示可以支持多数据库。例如:
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
DB_VENDOR表示的是VendorDatabaseIdProvider,这个别名在configraution 中注册了。作用就是,得到数据库厂商的标识(驱动),mybatis就可以根据不同的标识执行不同的sql语句。
<mappers />
映射器:我们现在就要定义 SQL 映射语句了。 但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。这个标签就是告诉mybatis去哪里找mapper映射文件的。
<!--
mapper:注册一个sql映射
注册配置文件
resource:引用类路径下的sql映射文件
com/rulong/first-mybatis/mapper/UserMapper.xml
url:引用网路路径或者磁盘路径下的sql映射文件
file:///var/mappers/AuthorMapper.xml
注册接口
class:引用(注册)接口,
1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
2、没有sql映射文件,所有的sql都是利用注解写在接口上;
推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解;
-->
<!-- <mapper resource="mybatis/mapper/UserMapper.xml"/> -->
<!-- <mapper class="com.rulong.first-mybatis.mapper.UserapperAnnotation"/> -->
<!-- 批量注册: -->
<package name="com.rulong.first-mybatis.mapper"/>
</mappers>