一.什么是MyBatis中的属性
所谓属性,其实就是一个key-value对。将一些具体的值value赋值给变量Key
二.为什么给MyBatis配置属性
将mybatis-config.xml中部分信息提取到专门的文件中存放。
三.配置属性的三种方式及优先级
build() > 专门的properties文件 > <property…/>元素
1.SqlSessionFactoryBuilder类中的build()方法
(1)定义Properties对象
(2)Properties对象同配置文件的输入流一同传入build()方法的参数中
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 1.定义Properties对象
Properties props = new Properties();
props.setProperty("driver", "com.mysql.cj.jdbc.Driver");
props.setProperty("pss", "32147");
// 2.Properties对象同配置文件的输入流一同传入build()方法的参数中
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream, props);
2.创建properties文件并定义属性
(1)在类加载路径下编写xxx.propertis
(2)在文件中编写key- value形式的属性
(3)在mybatis的配置文件中引入属性文件
<!--
resource:通过类加载路径去搜索属性文件
url:通过url加载搜索属性文件
-->
<properties resource="db.properties">
</properties>
3.使用property标签进行配置
<properties>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
</properties>
四.引用配置属性
格式${属性名}
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${ur}" />
<property name="password" value="${pss}" />
</dataSource>
五.在使用时配置默认的属性名
1.格式
${属性名: 默认值}
2.使用
开启指定默认
使用默认值
<!-- 开启指定默认 -->
<properties resource="db.properties">
<property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/>
</properties>
<!-- 引用默认 -->
<dataSource type="POOLED">
operty name="password" value="${pss:heiheihaha}" />
</dataSource>
3.修改指定默认值与属性值之间的分隔符
<properties resource="db.properties">
<property <property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="--"/>
</properties>