MyBatis中的properties配置(推荐)
这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,亦可通过properties元素的子元素来传递。例如:
其中的属性就可以在整个配置文件中使用来替换需要动态配置的属性值。比如:
这个例子中的username和password将会由properties元素中设置的相应值来替换。driver和url属性将会由config.properties文件中对应的值来替换。这样就为配置提供了诸多灵活选择。
属性也可以被传递到SqlSessionFactoryBuilder.build()方法中。例如:
SqlSessionFactoryfactory=newSqlSessionFactoryBuilder().build(reader,props); //...or... SqlSessionFactoryfactory=newSqlSessionFactoryBuilder().build(reader,environment,props);
如果属性在不只一个地方进行了配置,那么MyBatis将按照下面的顺序来加载:
在properties元素体内指定的属性首先被读取。
然后根据properties元素中的resource属性读取类路径下属性文件或根据url属性指定的路径读取属性文件,并覆盖已读取的同名属性。
最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。
因此,通过方法参数传递的属性具有最高优先级,resource/url属性中指定的配置文件次之,最低优先级的是properties属性中指定的属性。
从MyBatis3.4.2开始,你可以为占位符指定一个默认值。例如:
这个特性默认是关闭的。如果你想为占位符指定一个默认值,你应该添加一个指定的属性来开启这个特性。例如:
你可以使用":"作为属性键(e.g.db:username)或者你也可以在sql定义中使用OGNL表达式的三元运算符(e.g.${tableName!=null?tableName:'global_constants'}),你应该通过增加一个指定的属性来改变分隔键和默认值的字符。例如:
总结
以上所述是小编给大家介绍的MyBatis中的properties配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!