mybatis学习总结(二)——配置

在mybatis中要构建sqlSessionFactory对象,让它来产生SqlSession,而在mybatis-spring中,SqlSession的产生是通过SqlSessionTemplate来实现的,它提供了对SqlSession操作的封装。所以通过SqlSessionTemplate可以得到Mapper

配置依赖的包

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.caches</groupId>
            <artifactId>mybatis-ehcache</artifactId>
            <version>1.0.3</version>
        </dependency>

配置数据源

使用的是druid,参考https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

配置sqlSessionFactory

<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 配置数据源 -->
    <property name="dataSource" ref="dataSource" />
    <!-- 配置文件 -->
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <!-- 配置mapper路径 -->
    <property name="mapperLocations" value="classpath*:com/zyx/demo/mapper/**/*Mapper.xml"/>
</bean>

其中mybatis-config.xml配置

<configuration>
    <settings>
        <!-- 全局映射器启用缓存 -->
        <setting name="cacheEnabled" value="false" />
        <!-- 懒加载 -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能 -->
        <setting name="aggressiveLazyLoading" value="false" />
        <!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
        <setting name="multipleResultSetsEnabled" value="true" />
        <!-- 允许使用列标签代替列名 -->
        <setting name="useColumnLabel" value="true" />
        <!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
        <setting name="useGeneratedKeys" value="true" />
        <!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
        <setting name="autoMappingBehavior" value="FULL" />
        <!-- 对于批量更新操作缓存SQL以提高性能 -->
        <!--  <setting name="defaultExecutorType" value="BATCH" />-->
        <!-- 数据库超过25000秒仍未响应则超时 -->
        <setting name="defaultStatementTimeout" value="25000" />
        <setting name="localCacheScope" value="STATEMENT"/>
    </settings>
</configuration>
属性名称 简单描述 设置值 默认值  
cacheEnabled 对在此配置文件下的所有cache 进行全局性开/关设置 true  | false true  
lazyLoadingEnabled 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载。 true | false true  
aggressiveLazyLoading 当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 true | false true  
multipleResultSetsEnabled 允许和不允许单条语句返回多个数据集 true | false true  
useColumnLabel 使用列标签代替列名称。不同的驱动器有不同的作法。参考一下驱动器文档,或者用这两个不同的选项进行测试一下。 true | false true  
useGeneratedKeys 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 true | false false  
autoMappingBehavior 指定MyBatis 是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,没有嵌套的结果。FULL 将自动映射所有复杂的结果。

NONE,

PARTIAL,

FULL

PARTIAL  
defaultExecutorType 配置和设定执行器,SIMPLE 执行器执行其它语句。REUSE 执行器可能重复使用prepared statements 语句,BATCH执行器可以重复执行语句和批量更新。

SIMPLE

REUSE

BATCH

SIMPLE  
defaultStatementTimeout 设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时 正整数

Not Set  null)

 

配置sqlSessionTemplate

    <!-- 配置sqlSessionTemplate -->
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg ref="sqlSessionFactory"/>
    </bean>

配置MapperScannerConfigurer

    <!-- 配置MapperScannerConfigurer -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate" />
        <property name="basePackage" value="com.zyx.demo.**.dao" />
    </bean>

配置事物

原文地址:https://www.cnblogs.com/zhangyaxiao/p/8335656.html