mybatis全局配置文件

properties标签(引入外部proprties文件)

mybatis可以使用properties标签来引入外部proprties文件的内容。
properties标签下有2个属性:

  • resource:类路径下的proprties文件
  • url:网络路径下的proprties文件

举例:

<?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="db.properties"></properties>
    <environments default="mysql">
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <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>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="mapper/User.xml" />
    </mappers>
</configuration>

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
jdbc.username=root
jdbc.password=dexuan97

这里引入类路径下db.properties文件,如果xml想要使用db.properties中属性,只需要用${key}就行了。

settings标签(重要的设置项)

<?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="db.properties"></properties>
    <settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
    <environments default="mysql">
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <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>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="mapper/User.xml" />
    </mappers>
</configuration>

settings包含了许多重要的设置项,setting中有两种属性:

  • name:设置项名
  • value:设置项
设置参数描述有效值默认值
mapUnderscoreToCamelCase是否开启自动驼峰命名映射,即从数据库列名A_COLUMN到JAVA属性名aColumn的类似映射true、falsefalse
cacheEnable该配置影响所有映射器中配置的缓存全局开关true、falsetrue
lazyLoadingEnable延迟加载的全局开关。当它开启时,所有关联对象都会延迟加载。特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态true、falsefalse
aggressiveLazyLoading当启用时,对任意延迟属性对象的调用会使带有延迟加载属性的对象完整加载,反之每种属性按需加载true、falsetrue
multipleResultSets是否允许单一语句返回结果集(需要兼容驱动)true、falsetrue
useColumnLabel使用列标签代替列名true、falsetrue
useGenerateKeys允许JDBC自动生成主键,需要驱动兼容。如果设置为true,则强制自动生成主键true、falsefalse
autoMappingBehavior指定mybatis应如何自动映射列到字段或属性,NONE:取消自动映射,PARTIAL:只会自动映射没有定义嵌套结果集映射的结果集,FULL:自动映射任务复杂的结果集(无论是否嵌套)NONE、PARTILA、FULLPARTIAL
defaultExecutorType配置默认的执行器,SIMPLE:普通的执行器,REUSE:执行器会重复利用预处理语句(prepared statements),BATCH:执行器将重用语句并执行批量更新SIMPLE、REUSE、BATCHSIMPLE
defaultStatementTimeout设置超时时间,它决定驱动等待数据相应的秒数。当没有设置时它取得是驱动默认时间any position integer
safeRowBoundsEnabled允许在嵌套语句中使用分页true、falsefalse
mapUnderscoreToCamelCase是否开启自动驼峰命名映射,即从数据库列名A_COLUMN到JAVA属性名aColumn的类似映射true、falsefalse
localCacheScopemybatis利用本地缓存机制(local cache)防止循环引用(circular references)和加速重复嵌套查询。默认值是SESSIOn,这种情况下会缓存一个会话执行的所有查询。若设置为STATEMENT,本地会话仅仅用在语句执行上,对相同的sqlSession的不同调用将不会共享数据SESSION、STATEMENTSESSION
jdbcTypeForNull当没有为参数提供特定的JDBC类型时,为空值指定JDBC类型常见:NULL、VARCHAR、OTHEROTHER
lazyLoadTriggerMethod指定对象的方法触发一次延迟加载 如果是一个方法列表,则用逗号隔开equals、clone、hashCode

typeHandlers标签

plugins标签

environments标签

mybatis所需的环境,比如有开发环境和测试环境在这里配置就好了,有environment子标签组成。environment中必须有2个子标签:

  • transactionManager:事务管理器
    • type属性:JDBC或MANAGED(使用jdbc回滚还是j2ee容器的方式进行回滚)
  • dataSource:数据源
    • type属性:UNPOOLED|POOLED|JNDI(UNPOOLED:不使用连接池。POOLED:使用连接池。JNDI:使用jndi技术。自定义数据源:实现DataSourceFactory接口,type是全类名。)

environment中还需要1个属性代表当前环境就是id属性,如果想要变换当前属性,就需要在environments中的default标签中指明当前环境id名称。

<configuration>
    <!--   配置环境-->
    <properties resource="db.properties"></properties>
    <settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
    <environments default="dev">
        <!--配置mysql的环境-->
        <environment id="dev">
            <!--配置事务的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <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>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="mapper/User.xml" />
    </mappers>
</configuration>

mappers标签

指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件。

<mappers>
    <mapper resource="mapper/User.xml" />
</mappers>

mapper有三种属性:

  • resource: 指定了磁盘下sql映射文件文件路径。
  • url:指定了网络路径下sql映射文件文件路径。
  • class: 接口注册,class=“接口路径”
    • 如果有映射文件,映射文件需要和接口同名且放在同一目录下。
    • 没有映射文件,需要用注解方式写明。

建议使用映射文件降低耦合,不然每次修改都需要编译。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值