• 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>

    配置事物

  • 相关阅读:
    Java中 Jwt
    Python中Jwt
    jwt流程
    Vue Demons
    Vue基础
    Mysql
    MongoDb
    2020/03/07-基础复习day_02
    2020/03/07-基础复习day_01
    基于springboot+dubbo的简易分布式小Demo
  • 原文地址:https://www.cnblogs.com/zhangyaxiao/p/8335656.html
Copyright © 2020-2023  润新知