▲typeHandlers
类型处理器,它架起数据库和JavaBean一一映射的桥梁,这里需要注意一下,java在JDK1.8之前,日期处理函数并不丰富,但在JDK1.8之后引入JSR-310标准,这些处理在mybatis 1版本是没有的,需要自己手动引入= =当然现在也不用担心这个,因为我们不大可能会用这个版本的Mybatis。(Mybatis3.4之后)
▲plugins
这个也是Mybatis的强大之处,这个我会放到后面的章节,在对Mybatis有详细认识之后,进行详细介绍。
Mybatis可以拦截到对数据库的处理对象,这也是我们在JDBC学习阶段认识的几个对象,那么如何拦截呢?这里就用到了插件。我们可以在这些方法执行之前,拦截,添加一些新方法,和AOP的概念如出一辙。
执行器:Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
参数处理器:ParameterHandler (getParameterObject, setParameters)
结果集处理器:ResultSetHandler (handleResultSets, handleOutputParameters)
SQL语句处理器:StatementHandler (prepare, parameterize, batch, update, query)
▲environments
配置多种环境,这标签里面套着<environment>,而<environment>里,必需包含着<transationManager>和<dataSource>,<environment>里有个id属性,我们可以通过这个,给项目配置其他环境,比如可以提供一套测试环境,而在<enviroments>中的defualt属性,将默认环境设置为开发环境,测试人员在拿到项目时,只要改这个default属性即可。
<transactionManager type=""/>它有两种值,JDBC或者MANAGED,
后者使用JEE Application Server context的方式作为容器,当然这些事务配置,我们今后会有Spring来操作,所以这里了解一下即可,
dataSource数据源 type:UNPOOLED|POOLED|JNDI 第一个是不采用任何一种方式,每次都去操作都链接一次数据库,第二种采用连接池
▲databaseIdProvider
Mybatis可以根据不同的厂商,执行不同的sql语句,现在我们有新的需求,可以查询MYSQL的Employee也可以查询Oracle的Employee,
<databaseIdProvider type="DB_VENDOR" />
type="DB_VENDOR"(别名)得到数据库产商的标识,我们可以为不同的产商起不同的别名,我们在全局变量里添加一下代码
-
<databaseIdProvider type="DB_VENDOR">
-
<property name="MYSQL" value="mysql"/>
-
<property name="Oracle" value="oracle"/>
-
</databaseIdProvider>
接着再mapper.xml里指定每句sql语句的数据库即可