二.全局配置文件
MyBatis 的配置文件包含了影响 MyBatis 行为甚深的
设置(settings)和属性(properties)信息。文档的
顶层结构如下:
• configuration 配置
• properties 属性
• settings 设置
• typeAliases 类型命名
• typeHandlers 类型处理器
• objectFactory 对象工厂
• plugins 插件
• environments 环境
• environment 环境变量
• transactionManager 事务管理器
• dataSource 数据源
• databaseIdProvider 数据库厂商标识
• mappers 映射器
2.1 properties
<!--mybatis可以使用properties来引入外部properties配置文件的内容
resource:引入类路径下资源
url:引入网络路径下的资源-->
<properties resource="dbconfig.properties"/>
<!--dbconfig.properties:-->
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis1
jdbc.username=root
jdbc.password=123456
<!--数据库搭载:-->
<dataSource type="POOLED">
<!--导入了properties后可以直接使用内部配置内容-->
<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>
2.2 settings
<!--
settings包含很多重要的设置项
settings:用来设置每一个设置项
name:设置项名
value:设置项取值
-->
[settings中各属性详解](https://blog.csdn.net/u014231523/article/details/53056032)
<!--例:设置驼峰命名法-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
2.3 typeAliases
<typeAliases>
<!--
typeAliases:别名处理器,可以为java类型起别名
注意:别名不区分大小写
typeAlias:为某个类单独起别名
type:指定要起别名的类型全类名,默认别名就是类名小写:employee
alias:指定新的别名
package:为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写))
@Alias:批量起别名的情况下,在类前加@Alias标签,标签内的值,为其新的别名
建议:还是使用全类名,这样不易混淆,并且利用ctrl加左键可以直接进入bean
-->
<!--<typeAlias type="com.itlc.mybatis.HelloWorld.New.bean.Employee" alias="emp"/>-->
<package name="com.itlc.mybatis.HelloWorld.New.bean"/>
</typeAliases>
2.4 environments
<!--
environments:环境,mybatis可以配置多种环境,default指定使用某种环境。可以快速切换环境
environment:对应一个具体的环境信息
必须有transactionManager:事务管理器
type:事务管理器类型(别名);JDBC(JdbcTransactionFactory)\MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口。type指定为全类名
必须有dataSource:
type:数据源类型(别名);UNPOOLED(UnpooledDatasourceFactory)
\POOLED(PooledDatasourceFactory)
\JNDI(JndiDatasourceFactory)
自定义数据源:实现DatasourceFactory接口。type指定为全类名
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED"/>
</environment>
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!--导入了properties后可以直接使用内部配置内容-->
<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>
2.5 databaseIdProvider
<!--
databaseIdProvider:支持多数据库厂商
type="DB_VENDOR"(别名):VendorDatabaseIdProVider
作用就是得到数据厂商的标识,mybatis就能根据数据库厂商标识(驱动getDatabaseProductName())
mybatis就能根据数据库厂商标识来执行不同的sql。标识:MySQL,Oracle,SQL Server,xxxx
-->
<databaseIdProvider type="DB_VENDOR">
<!--为不同的数据库厂商起别名-->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
<!--
在mapper中利用databaseId指定数据库类型即可,例:
<select id="getEmpById" resultType="Emp" databaseId="mysql">
Select * FROM tbl_employee WHERE id=#{id}
</select>
-->
2.6 mappers
<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
<!--6.mappers:将sql映射注册到全局配置中-->
<mappers>
<!--
mapper:注册一个sql映射
resource:引用类路径下的sql映射文件
url:引用网络路径或者磁盘路径下的sql映射文件
class:引用(注册)接口
1.有sql映射文件,映射文件名和接口同名,并且放在与接口同一目录下
2.没有sql映射文件,所有的sql都是利用注解写在接口上
推荐:
比较重要的:复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解
-->
<mapper class="com.itlc.mybatis.HelloWorld.New.dao.testEmployeeMapper"/>
<mapper resource="EmployeeMapper.xml" />
<!--批量注册:-->
<package name="com.itlc.mybatis.HelloWorld.New.dao"/>
</mappers>