欢迎访问:我的个人网站
属性配置文件
在使用Mybatis时候需要编写配置文件以指定其运行时候所需要的信息。包含了一系列的标签,大致有以下的几个类别:
- properties:属性标签
- settings:全局配置参数标签
- typeAliases:类型别名标签
- typeHandlers:类型处理器标签
- objectFactory:对象工厂
- plugins:插件
- environments:环境集合属性对象
- environment:环境子属性对象
- transactionManager:事务管理
- dataSource:数据源
- mappers:映射器
下面将就其中的部分标签做出简单的说明:
#1.Properties
在配置文件中,指定了**[properties]标签并设定了固定值(比如数据库的连接信息等),但是这样直接写死的话会使得各种属性的信息混杂在一个文件里面,不利于后期的更改以及维护。所以可以将每一种类别的属性单独抽离出来作为一个单独的文件存在然后进行引入。后期在进行维护的时候就可以很方便的定位。
>当把某些信息抽离出去之后,可以使用标签[properties]**标签引入,设置resource属性为待引入文件的路径,后续在使用该属性的时候,只需要使用 ${ 属性名} 既可以获得该文件内指定属性的值。
-------------------------------------------------------------------------------------------------------
该标签不仅可以引入外部的属性配置文件,在properties标签的内部也可以设置属性,属性加载过程如下:
1.首先加载位于properties内部的属性信息。
2.若存在resource / url属性,则再次加载resource/ url 属性所指向文件的属性,对于同名属性后者会覆盖前者
如下,将数据库连接信息单独抽离出来:
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis_test
jdbc.user = root
jdbc.password = 爱你
然后进行引入:
<properties resource = "./config/db.properties">
<property name="otherProperties" value="propertiesValue"/>
</properties>
按上面的方式引入数据库连接信息之后,就可以使用下面的方法读取到引入文件的某个属性值了:
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
#2.Settings
在框架运行的时候可以调整一些运行参数,比如开启二级缓存。开启延时加载等。详细说明到后续了解到的时候再做补充,先留个位置。
#3.TypeAliases
在定义statement的时候,需要指定parameterType以及resultType,他们要求是输入全路径,比较麻烦。可以使用typeAliases针对这个全路径来为其定义一个别名,便于在定义statement的时候方便使用。在Mybatis里面已经存在了一些默认的别名来使用。比如int就是Integer的别名。自定义别名的方法是使用typeAliases标签:
定义别名的方式有以下两种,可以单独为某一个具体的类型定义别名。也可以指定某一目录,为该目录下的实体类等批量定义别名:
<typeAliases>
<!-- 指定具体的一个实体类来为其定义别名 -->
<typeAlias type="domain.User" alias="user"/>
<!-- 指定一个包,Mybatis会自动扫描该包下的所有类并为其创建别名。名称就是类名,首字母大小写都行 -->
<package name="domain"/>
</typeAliases>
然后在定义statement的时候就可以使用别名:
<select id="selectUserById" resultType="user" parameterType="int">
select * from tb_user where id = ${value}
</select>
#4.TypeHandlers
用于将java程序数据类型与jdbc数据类型进行转换,通常情况下Mybatis默认定义的就满足了需要,一般情况下,无需自定义更多
#5.Mappers
用于加载所建立的映射文件,有以下的几种形式:
<mappers>
<!-- 加载单个的映射文件, 也可以使用url加载 -->
<mapper resource="config/mapper/UserMapperImpl.xml"/>
<!--
通过mapper接口加载映射文件
前提是使用的是mapper代理的方法,
并且,mapper接口名和映该接口的映射文件名相同,还要在一个目录里面
-->
<mapper class="dao.UserDao"/>
<!-- 指定一个目录,mybatis会自动加载该目录下的所有映射文件,常用 -->
<package name="config.mapper"/>
</mappers>