MyBatis中的properties配置(推荐)

 更新时间:2017年12月18日 11:12:41   投稿:mrr  
这篇文章给大家介绍了MyBatis中的properties配置,非常不错,具有参考借鉴价值,需要的朋友参考下吧

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

<properties resource="org/mybatis/example/config.properties">
 <property name="username" value="dev_user"/>
 <property name="password" value="F2Fa3!33TYyg"/>
</properties>

其中的属性就可以在整个配置文件中使用来替换需要动态配置的属性值。比如:

<dataSource type="POOLED">
 <property name="driver" value="${driver}"/>
 <property name="url" value="${url}"/>
 <property name="username" value="${username}"/>
 <property name="password" value="${password}"/>
</dataSource>

这个例子中的 username 和 password 将会由 properties 元素中设置的相应值来替换。 driver 和 url 属性将会由 config.properties 文件中对应的值来替换。这样就为配置提供了诸多灵活选择。

属性也可以被传递到 SqlSessionFactoryBuilder.build()方法中。例如:

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, props);
// ... or ...
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, props);

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:

在 properties 元素体内指定的属性首先被读取。

然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。

最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

从MyBatis 3.4.2开始,你可以为占位符指定一个默认值。例如:

<dataSource type="POOLED">
 <!-- ... -->
 <property name="username" value="${username:ut_user}"/> <!-- If 'username' property not present, username become 'ut_user' -->
</dataSource>

这个特性默认是关闭的。如果你想为占位符指定一个默认值, 你应该添加一个指定的属性来开启这个特性。例如:

<properties resource="org/mybatis/example/config.properties">
 <!-- ... -->
 <property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- Enable this feature -->
</properties>

你可以使用 ":" 作为属性键(e.g. db:username) 或者你也可以在sql定义中使用 OGNL 表达式的三元运算符(e.g. ${tableName != null ? tableName : 'global_constants'}), 你应该通过增加一个指定的属性来改变分隔键和默认值的字符。例如:

<properties resource="org/mybatis/example/config.properties">
 <!-- ... -->
 <property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="?:"/> <!-- Change default value of separator -->
</properties>
<dataSource type="POOLED">
 <!-- ... -->
 <property name="username" value="${db:username?:ut_user}"/>
</dataSource>

总结

以上所述是小编给大家介绍的MyBatis中的properties配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 详解java配置文件的路径问题

    详解java配置文件的路径问题

    这篇文章主要介绍了详解java配置文件的路径问题的相关资料,这里对绝对路径及相对路径和classpath 类文件路径进行详细介绍,需要的朋友可以参考下
    2017-07-07
  • Mybatis-Plus通用枚举的使用详解

    Mybatis-Plus通用枚举的使用详解

    这篇文章主要介绍了Mybatis-Plus通用枚举的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • java如何根据提供word模板导出word文档详解

    java如何根据提供word模板导出word文档详解

    在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表、医院的患者统计报表、电商平台的销售报表等等,这篇文章主要给大家介绍了关于java如何根据提供word模板导出word文档的相关资料,需要的朋友可以参考下
    2023-09-09
  • 浅谈使用java实现阿里云消息队列简单封装

    浅谈使用java实现阿里云消息队列简单封装

    这篇文章主要介绍了浅谈使用java实现阿里云消息队列简单封装,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java中SpringSecurity密码错误5次锁定用户的实现方法

    Java中SpringSecurity密码错误5次锁定用户的实现方法

    这篇文章主要介绍了Java中SpringSecurity密码错误5次锁定用户的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Spring中bean标签的用法详解

    Spring中bean标签的用法详解

    Bean标签一般用于配置对象交由Spring 来创建,这篇文章主要来和大家详细聊聊Spring中bean标签的用法,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-06-06
  • Spring中@Configuration和@Component注解的区别及原理

    Spring中@Configuration和@Component注解的区别及原理

    这篇文章主要介绍了Spring中@Configuration和@Component注解的区别及原理,从功能上来讲,这些注解所负责的功能的确不相同,但是从本质上来讲,Spring内部都将其作为配置注解进行处理,需要的朋友可以参考下
    2023-11-11
  • 浅谈Mybatis获取参数值的方式

    浅谈Mybatis获取参数值的方式

    本文主要介绍了Mybatis获取参数值的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java8使用lambda实现Java的尾递归

    Java8使用lambda实现Java的尾递归

    这篇文章主要介绍了Java8使用lambda实现Java的尾递归的相关资料,需要的朋友可以参考下
    2017-10-10
  • 浅谈JAVA 责任链模式

    浅谈JAVA 责任链模式

    这篇文章主要介绍了JAVA 责任链模式的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06

最新评论