MyBatis核心配置文件标签简介

XML 映射配置文件

MyBatis的配置文件包含了影响MyBatis行为甚深的设置(settings)和属性(properties)信息。文档的顶层结果如下:

configuration配置

properties属性

setting设置

typeAliases类型命名

typeHandlers类型处理器

objectFactory对象工厂

plugins插件

environments环境

environment环境变量

transactionManager事务管理器

dataSource数据源

databaseIdProyider数据库厂商标识

mappers映射


properties

属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过properties元素的子元素来传递。

例如:

<!-- 
 	mybatis的核心配置文件
 		1.数据库的连接信息(连接池)
  -->
  <properties resource="jdbc.properties"></properties>
其中的属性就可以在整个配置文件中使用来替换需要动态配置的属性值。

比如:

  <!-- 默认连接池 -->
  <dataSource type="POOLED">
       <property name="driver" value="${driverClass}"/>
       <property name="url" value="${url}"/>
       <property name="username" value="${userid}"/>
       <property name="password" value="${password}"/>
   </dataSource>

properties属性:将数据库连接参数单独配置在jdbc.properties中,只需要在mybatis.xml文件中加载jdbc.properties的属性值。 在mybatis.xml中就不需要对数据库连接参数硬编码(硬编码是指将可变变量用一个固定值来代替的方法)。在properties 元素体内定义的属性首先被读取。然后会读取properties元素中resource或url加载属性,它会覆盖已读取的同名属性。

注意:如果在properties标签里面定义的属性被${}所引用了,对#{}不管用。那么它不会读取parameterType里面的参数值。比如properties里面定义了id属性,值为40,在映射文件中引用该值,${id}那么我从parameterType里面传值时,不管我传基本类型还是引用类型进去都不会覆盖这个${id}值。始终都会读取40.


属性也可以被传递到SqlSessionBuilder.build()方法中。

例如:

SqlSessionFactoryBuilder源码:
 public SqlSessionFactory build(Reader reader, Properties properties) {
    return build(reader, null, properties);
  }

  public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
    try {
      XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties);
      return build(parser.parse());
    } catch (Exception e) {
      throw ExceptionFactory.wrapException("Error building SqlSession.", e);
    } finally {
      ErrorContext.instance().reset();
      try {
        reader.close();
      } catch (IOException e) {
        // Intentionally ignore. Prefer previous error.
      }
    }
  }
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值