Mybatis全局配置文件SqlMapConfig.xml详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Stephen_mu/article/details/88311922

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数据源参数差异问题!(参数名混淆)

猜你喜欢

转载自blog.csdn.net/Stephen_mu/article/details/88311922