04-mybatis的配置

属性(properties)

在前面的例子中,我们直接在mybatis-config.xml文件里面写死了用户名、密码、url等属性。

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

    <!--环境的配置,默认是development,可以配置多个-->
    <environments default="development">
        <!--development环境配置-->
        <environment id="development">
            <!--事务管理,默认用jdbc的事务管理-->
            <transactionManager type="JDBC"/>
            <!--数据源配置-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="pan"/>
            </dataSource>
        </environment>
    </environments>
    <!--配置mapper.xml文件,进行注册-->
    <mappers>
        <mapper resource="com/mybatis/mapper/UserMapper.xml"/>
    </mappers>

</configuration>

现在进行优化,将这些用标签<property>包裹起来的属性,放到外部的配置文件中,然后在mybatis-config.xml文件引入外部配置文件。

  1. 新建一个外部配置文件application.properties,内容如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC
username=root
password=pan
  1. 修改mybatis-config.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>

    <!--从外部文件中读取配置-->
    <properties resource="application.properties"/>

    <!--环境的配置,默认是development,可以配置多个-->
    <environments default="development">
        <!--development环境配置-->
        <environment id="development">
            <!--事务管理,默认用jdbc的事务管理-->
            <transactionManager type="JDBC"/>
            <!--数据源配置-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--配置mapper.xml文件,进行注册-->
    <mappers>
        <mapper resource="com/mybatis/mapper/UserMapper.xml"/>
    </mappers>

</configuration>

类型别名(typeAliases)

  • 方式一:直接在mybatis-config.xml中增加
    <typeAliases>
        <typeAlias type="com.mybatis.entity" alias="User"/>
    </typeAliases>

之后在mapper.xml中,resultType的值,则可以直接使用User。

  • 方式二:在mybatis-config.xml中指定包名,然后在实体类上增加注解,自定义类名
    <typeAliases>
        <package name="com.mybatis.entity"/>
    </typeAliases>

实体类增加注解,后面在mapper.xml中,resultType的值,可以直接使用注解的值。

@Alias("hello")
public class User {
    private int id;
    private String name;
    private String passWord;
}

设置(settings)

在mybatis-config.xml中,可以进行一些设置,改变mybatis的运行时行为。主要的设置有:

<!--一些基础设置-->
    <settings>
        <setting name="cacheEnabled" value="true"/>                 <!--常用,开启缓存-->
        <setting name="lazyLoadingEnabled" value="true"/>           <!--常用,懒加载-->
        <setting name="multipleResultSetsEnabled" value="true"/>
        <setting name="useColumnLabel" value="true"/>               <!--常用,自动生成列-->
        <setting name="useGeneratedKeys" value="false"/>            <!--有时用,自动生成主键-->
        <setting name="autoMappingBehavior" value="PARTIAL"/>
        <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
        <setting name="defaultExecutorType" value="SIMPLE"/>
        <setting name="defaultStatementTimeout" value="25"/>
        <setting name="defaultFetchSize" value="100"/>
        <setting name="safeRowBoundsEnabled" value="false"/>
        <setting name="mapUnderscoreToCamelCase" value="false"/>    <!--常用,驼峰转换-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>            <!--常用,日志打印-->
        <setting name="localCacheScope" value="SESSION"/>
        <setting name="jdbcTypeForNull" value="OTHER"/>
        <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
    </settings>

在实际使用时,并不需要都加进去,只要按自己所需,加上常用的即可。

映射器(mappers)

  • 方式一
    <!--配置mapper.xml文件,进行注册-->
    <mappers>
        <mapper resource="com/mybatis/mapper/UserMapper.xml"/>
    </mappers>
  • 方式二

使用class文件绑定注册

    <!--配置mapper.xml文件,进行注册-->
    <mappers>
        <mapper class="com.mybatis.mapper.UserMapper"/>
    </mappers>

注意:(1)接口与其Mapper配置文件必须同名(2)接口与其Mapper配置文件必须在同一个包下

  • 方式三

使用扫描包进行注入绑定

    <!--配置mapper.xml文件,进行注册-->
    <mappers>
        <package class="com.mybatis.mapper"/>
    </mappers>

注意:(1)接口与其Mapper配置文件必须同名(2)接口与其Mapper配置文件必须在同一个包下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值