Mybatis学习之路(二):property元素应用

来源:互联网 发布:程序员的工资组成 编辑:程序博客网 时间:2024/05/19 05:01

1.property元素
在配置mybatis与SQL映射时时常会用到property元素,例如配置dataSource时。注意要区别的是,property在中文翻译过来是属性,但元素内的attribute也会翻译成属性,所以个人倾向用英文。property元素也是一种键值的格式:

<property name="username" value="123"/>

2.预先设置property元素
在配置mybatis时可以通过properties元素预先设计好property的value,并在想要获取值的时候通过${}获取,

<?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="config.properties">            <property name="username" value="root"/>            <property name="password" value="0000"/>        </properties>        <environments default="default">                <environment id="default">                    <!-- 事物管理器配置 -->                    <transactionManager type="JDBC"></transactionManager>                    <!-- 数据源配置 -->                    <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>        <mappers>            ...        </mappers></configuration>

既可以通过properties文件预先设计好导入,也可以在properties中设计相应的property,由于可能在设置键时会出现命名重复的现象,所以mybatis会对取值有覆盖,首先mybatis会先读取properties元素内的property元素,之后如果有resource那么便会根据该路径读取property当出现键相同的情况便会覆盖,最后如果property的值是读取方法参数并且键相同时便会覆盖。也就是:
总结:方法参数属性>resource中配置文件里的属性>在xml的properties元素配置的属性:
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="config.properties">            <!-- driver中的值会被config.properties中的值所覆盖 -->            <property name="driver" value=""/>            <property name="username" value="root"/>            <property name="password" value="0000"/>        </properties>        <environments default="default">                <environment id="default">                    <!-- 事物管理器配置 -->                    <transactionManager type="JDBC"></transactionManager>                    <!-- 数据源配置 -->                    <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>        <mappers>            ...        </mappers></configuration>

config.properties

driver = com.mysql.jdbc.Driverurl = jdbc:mysql://localhost:3306/mark
原创粉丝点击