顺序不能颠倒
1
<properties/> 属性,
-- 可以在此处如下定义属性<property name="a" value ="d"><property/>
在XML文件中可以如此:${a}使用 简便
可以单列文件 <properties resource="pro.properties">引用
2
<settings/> 设置
-- 缓存<setting name="cacheEnabled" value="true">
-- 延迟加载 lazyLoadingEnable true|false
延迟加载全局开关,当开启时,所有关联对象都会延迟加载,也可以在特定关系中使用fetchType设置
-- aggressiveLazyLoading true|false
开启时,对任意属性调用都会导致对象完整加载,反之,按需加载
-- 自动映射 autoMappingBehavior NONE|PARTIAL|FULL 默认为PARTIAL
按顺序 取消自动映射;;;自动映射没有定义嵌套结果集和映射结果集;;;自动映射任意结果集
-- 驼峰映射 mapUnderscoreToCamelCase true|false
自动驼峰命名规则映射,,数据库列名A_COLUMN到属性名aColumn
3
<typeAliases/> 别名三种声明方式
-- <typeAlias alias="role" type="com.ddd.test.Role"/>
-- <package name="com.ssm.pojo">别名为类名首字母小写
-- @Alias("role")
4
<typeHandlers/> 类型转换器
-- <typeHandler jdbcType="VARCHAR" javaType="string" handler="com.ddd.handler.Myhandler"/>
-- 需要实现接口typeHandle或者继承BaseTypeHandler
-- 转换在resultMap记得设置中在属性后加入typeHandler="转换类所在位置"或者 jdbcType="",javaType=""
-- SQL语句#{note, jdbcType="",javaType=""}或者#{note, typeHandler="com.ddd.handler.Myhandler"}
5
<ObjectFactory/> 对象工厂
-- 对象工厂用来创建结果集实例,Mybatis默认为DefaultObjectFactory
可以对其继承改写
6
<plugins/>插件
-- 另起一篇吧
7
<environments/>运行环境
例: <environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver"
value="${db.driver}" />
<property name="url"
value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</dataSource>
</environment>
</environments>
7.1
<transactionManager type=""/>事务管理器
-- 两个实现类JdbcTransactionFactory生成的JdbcTransaction和ManagedTransactionFactory生成的ManagedTransaction
-- type值JDBC(JDBC方式操作事务)和MANAGED(交给容器管理)
7.2
<dataSource type=""/>数据源
-- UNPOOLED 非连接池,可以配置的属性有driver ,url ,username ,password ,defaultTransactionIsolationLevel
可选项:driver.encoding=UTF-8 传递属性给数据库驱动
-- POOLED 除了上述,还有
poolMaximumActiveConnections 任意时间都存在的连接数量默认10;
poolMaximumIdleConnections 任意时间可能存在的空闲连接数
poolMaximumCheckOutTime 强制返回之前,池中连接被检出的时间,默认20秒(20000ms)
poolTimeToWait 获取连接花费一段时间后,打印状态日志,并重新尝试获取一个连接,避免一直失败,默认同上
poolPingQuery 发送到数据库的侦测查询,检验连接是否处于正常工作秩序,并准备接受请求。
poolPingEnabled 是否启用侦测查询,默认false
poolPingConnectionNotUsedFor 配置侦测查询的使用频度,默认0
-- JNDI 为了能在EJB或应用服务器这类容器中使用,容器集中配置数据源并防止一个JNDI上下文引用
initial-context 。。。。先放一会
data_source 。。。。
-- 支持第三方数据源 自定义数据源工厂需要实现DataSourceFactory
<dataSource type="com.ssm.dataSource.dddddataSourceFactory"></dataSource>
8
<databaseIdProvider/>数据库厂商标识
例如: <databaseIdProvider type="DB_VENDOR">
<property name="Oracle" value="oracle"/>
<property name="MySQL" value="mysql"/>
<property name="DB2" value="db2"/>
<databaseIdProvider/>
XML文件中标识SQL适用于那种数据库
<select id="getRole" parameterType="long" resultType="role" databaseId="oracle">
select id,r_name as roleName,note from role where id = #{id}
</select>
<select id="getRole" parameterType="long" resultType="role" databaseId="mysql">
select id,r_name as roleName,note from role where id = #{id}
</select>
-- 配置了标识之后,会有限取到和数据库配置一致的SQL,若没有则取没有配置databaseId的SQL,若还是没有则异常
-- 也可以自定义规则,需要实现接口DatebaseIdProvider
<databaseIdProvider type="自定义的IdProvider位置">
9
<mappers/>映射器 另起一篇
-- <mapper resource="com/ssm/mapper/RoleMapper.xml"/>文件路径引入
-- <package name ="com.ssm.mapper">包名引入
-- <mapper class="com.ssm.mapper.RoleMapper">类注册 注解吧
-- <mapper url="file:///var/mappers/com/ssm/mapper/RoleMapper.xml">
--参考书目
JavaEE互联网轻量级框架整合开发--SSM框架(Spring MVC +Spring+Mybatis)和Redis开发