1.properties:
引入外部配置<properties resource="resources/jdbc/jdbc.properties"></properties>
2.settings:
<!--设置 -->
<settings>
<!--缓存配置的全局开关:如果这里设置成false,那么即便在映射器中配置开启也无济于事 -->
<setting name="cacheEnabled" value="true" />
<!--延迟加载的全局开关 -->
<setting name="lazyLoadingEnabled" value="true" />
<!--积极加载的全局开关 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 是否允许单一语句返回多结果集 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 使用列标签代替列名,需要兼容驱动 -->
<setting name="useColumnLabel" value="true" />
<!-- 允许JDBC自动生成主键,需要驱动兼容。如果设置为true,则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍能正常工作 -->
<setting name="useGeneratedKeys" value="false" />
<!-- 指定MyBatis该如何自动映射列到字段或属性:NONE表示取消自动映射;PARTIAL表示只会自动映射,没有定义嵌套结果集和映射结果集;FULL会自动映射任意复杂的结果集,无论是否嵌套 -->
<setting name="autoMappingBehavior" value="PARTIAL" />
<!-- 配置默认的执行器:SIMPLE是普通的执行器;REUSE会重用预处理语句;BATCH会重用语句并执行批量更新 -->
<setting name="defaultExecutorType" value="SIMPLE" />
<!--设置超时时间:它决定驱动等待数据库响应的秒数,任何正整数-->
<setting name="defaultStatementTimeout" value="25"/>
<!--设置数据库驱动程序默认返回的条数限制,此参数可以重新设置,任何正整数 -->
<setting name="defaultFetchSize" value="100" />
<!-- 允许在嵌套语句中使用分页(RowBounds) -->
<setting name="safeRowBoundsEnabled" value="false" />
<!-- 是否开启自动驼峰命名规则,即从a_example到aExample的映射 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- 本地缓存机制,防止循环引用和加速重复嵌套循环 -->
<setting name="localCacheScope" value="SESSION" />
<!-- 当没有为参数提供特定JDBC类型时,为空值指定JDBC类型。某些驱动需要指定列的JDBC类型,多数情况直接用一般类型即可,如NULL/VARCHAR/OTHER -->
<setting name="jdbcTypeForNull" value="OTHER" />
<!-- 指定触发延迟加载的方法,如equals/clone/hashCode/toString -->
<setting name="lazyLoadTriggerMethods" value="equals" />
</settings>
3.typeAliases(别名)
在mapper.xml(映射文件)中parameterType,resultType需要指定输入输出参数类型。
如果在指定类型时输入类型全路径名(com.ncs.entity.Celebrity),不方便开发,我们可以使用别名来代替
1.支持的别名
2.用户自定义别名
<typeAliases>
<typeAlias type="com.ncs.entity.Celebrity" alias="celebrity"/>
<!--别名批量扫描,如果类名上有注解,则使用注解指定的名称作为别名,如果没有则使用类名首字母小写作为别名·-->
<package name="com.ncs.entity"></package>
</typeAliases>
4.typeHandler(类型处理器)
mybatis通过typeHandler完成jdbc类型和java类型的转换
5.mappers(映射器)
单一文件加载:
<mappers>
<mapper resource="resources/mapper/CelebrityMapper.xml"></mapper>
</mappers>
批量加载:(指定mapper接口的包名) 推荐使用
<mappers>
<package name="com.ncs.mapper"></package>
</mappers>
补充1:
配置文件报错:The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)
出错原因:Mybatis配置文件必须遵从如上顺序配置。
补充:关于c3p0与DBCP数据源参数差异问题!(参数名混淆)