mybatis全局配置文件的标签:
1. MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:
- configuration(配置)
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
- environment(环境变量)
- transactionManager(事务管理器)
- dataSource(数据源)
- databaseIdProvider(数据库厂商标识)
- mappers(映射器)
properties(属性):
<!--1.和Spring的context:property-placeholder;一样都是引用外部配置文件-->
<!--
resource:从类路径下开始引用
url:引用磁盘路径或者网络路径的资源
-->
<properties resource="jdbc.properties"/>
settings(设置):
<!--2.这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。-->
<settings>
<!--name:配置项的key; value:配置项的值-->
<!--属性名:loginAccount 数据库字段名:login_account-->
<!--mapUnderscoreToCamelCase:代表数据库字段名与属性名满足驼峰命名从而形成映射-->
<setting name="mapUnderscoreToCamelCase" value="true"/></settings>
typeAliases(类型别名):
<!--3.类型别名:为常用的类型(javaBean)起别名-->
<typeAliases>
<!--typeAliases:就是为一个javaBean起别名:别名默认就是类名(不区分大小写)配置文件中就可以用别名了-->
<!--alias="":指定一个别名-->
<!--<typeAlias type="com.pojo.Employee" alias="emp"/>-->
<!--批量起别名:name=""指定包名,默认别名就是类名-->
<!--<package name="com.pojo"/>-->
<!--我们推荐就用全类名-->
</typeAliases>
typeHandlers(类型处理器):
<!--4.类型处理器:作用:MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。-->
<typeHandlers>
<!--自定义好的类型处理器就这么配置上就行了-->
<typeHandler handler=""/>
</typeHandlers>
objectFactory(对象工厂):
每次 MyBatis 创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。 如果想覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现。
plugins(插件):
MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
* Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
* ParameterHandler (getParameterObject, setParameters)
* ResultSetHandler (handleResultSets, handleOutputParameters)
* StatementHandler (prepare, parameterize, batch, update, query)
这些类中方法的细节可以通过查看每个方法的签名来发现,或者直接查看 MyBatis 发行包中的源代码。 如果你想做的不仅仅是监控方法的调用,那么你最好相当了解要重写的方法的行为。 因为在试图修改或重写已有方法的行为时,很可能会破坏 MyBatis 的核心模块。 这些都是更底层的类和方法,所以使用插件的时候要特别当心。
environments(环境配置):
<!-- 6.environments配置环境们
environment:配置一个具体的环境:都需要一个事务管理器和一个数据源
transactionManager
后来数据源,和事务管理都是Spring来做-->
<!--default="development":默认使用哪个环境-->
<environments default="development">
<!--id="testEnv"是当前环境的唯一标示-->
<!--可以指定不同的环境,指定id,和default的值-->
<!-- <environment id="testEnv">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<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>-->
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<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>
databaseIdProvider(数据库厂商标识):
<!--7.mybatis用来考虑数据库移植的-->
<databaseIdProvider type="DB_VENDOR">
<!--name="":数据库厂商表示 value:给这个标识起一个好用的名字
MySQL、Oracle、SQL Server
-->
<property name="MySQL" value="mysql"/>
</databaseIdProvider>
mappers(映射器):
<!--8.写好的sql映射文件需要使用mappers注册进来-->
<mappers>
<!--
url:可以从磁盘路径或者网络路径引用
resource:在类路径下找sql映射文件
class:直接引用接口的全类名
可以将xml放在和dao接口同目录下,而且文件名和接口名一致
-->
<!--<mapper resource="EmployeeDao.xml"/>-->
<!--<mapper class="com.dao.EmployeeDao"/>
<mapper class="com.dao.EmployeeDaoAnnotation"/>-->
<!--配合使用:重要的dao可以写配置,简单的dao就直接标注解-->
<!--批量注册 name="":dao所在的包名-->
<package name="com.dao"/>
</mappers>