03-MyBatis进阶

一.Mybatis的xml方式的常用配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!--
        具体更加详情的配置请查看mybatis官网
        https://mybatis.org/mybatis-3/zh/getting-started.html
        -->

        <!--引入外部属性文件-->
        <properties resource="jdbc.properties"/>

        <!--核心配置文件的全局的设置-->
        <settings>
            <!--开启全局的延迟加载-->
            <setting name="lazyLoadingEnabled" value="true"/>
            <!-- 如果是true,则立即加载-->
            <!-- 如果是false,则按需加载-->
            <!--如果小于3.4.1 则必须配置,大于:3.4.1. 可以省略-->
            <setting name="aggressiveLazyLoading" value="false"/>
            <!--开启二级缓存: 默认是开启状态,可以不配置-->
            <setting name="cacheEnabled" value="true"/>
        </settings>

        <typeAliases>
            <!--配置包的别名,配置好之后,该包中的类可以直接使用类名配置
                比如com.mybatis.dao.User 配置的时候就可以直接写User
            -->
            <package name="com.mybatis.dao"/>
        </typeAliases>

        <!--default 可以指定用哪个环境的配置-->
        <environments default="development">

             <!--数据库的环境:
            default; 指定默认的环境
            -->
            <environment id="development">

                <!--事务管理: jdbc-->
                <transactionManager type="JDBC"/>
                <!--
                   dataSource: 数据源(数据库连接池)配置
                   type="POOLED" : 数据源的类型配置
                       POOLED :使用mybatis的自带数据源配置
                       UNPOOLED: 不使用数据源配置, 使用Connection操作数据库
                       JNDI:JNDI服务 数据源配置
                -->
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>

        <mappers>
                <!--该种方式不推荐,因为要配置多个-->
    <!--        <mapper resource="AccountDao.xml"/>-->

            <!-- mapper配置了package之后,对应的mapper文件要和接口在统计目录下
                比如java代码中的com.mybatis.dao.UserDao中定义接口,那么对应的UserDao.xml的
                mapper文件必须要和接口类名同名,且在resources中的路径也必须一致:com.mybatis.dao.UserDao.xml
                这样UserDao.java和UserDao.xml在编译之后会在同级目录下,而mybatis动态代理方式正式通过这种方式
                根据接口的全限定类名寻找Mapper.xml文件的
             -->
            <package name="com.mybatis.dao"/>
        </mappers>

    </configuration>

二.一对一方式查询

xml 方式 AccountDao.xml 一条sql,没有引用UserDao.xml中的查询sql

三.一对多

1.xml方式

UserDao.xml

AccountDao.xml

2.注解方式

UserDao

AccountDao

四.@SelectKey 和 @Option 实现主键回显

  1. SelectKey 方式,该方式比较通用,可以用在Mysql中或oracle中

  1. Option 方式

五.动态在注解中的使用

1.注解中使用动态sql方式一:

使用 @SelectProvider 注解

定义提供类

UserDao 中使用

2.注解中使用动态sql方式二

动态拼接sql,和在xml中使用一样

六. Mybatis 的一级缓存

七.Mybatis 的二级缓存

八.Mybatis 的分页助手 PageHelper

九.联合主键和外键的创建方式

Last updated