MyBatis系列(三) MyBatis 配置文件
一、properties
此标签的主要作用是引用配置文件,以数据源来举例。
新建mybatis-confing.properties配置文件
mybatis-confing.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useSSL=false
username=root
password=Yuhao@520
在MyBatis配置文件mybatis-confing.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> <!-- 引用mybatis-confing.properties配置文件 --> <properties resource="mybatis-confing.properties" /> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <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> <!-- 将我们写好的sql映射文件(PolicyMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 --> <mappers> <mapper resource="PolicyMapper.xml" /> </mappers> </configuration>
二、setting
settings是MyBatis中最复杂的配置,它能影响MyBatis底层的运行,大部分情况下使用默认值,如果需要改动只需要改动需要用到的部分即可。
三、typeAliases
类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
MyBatis全局配置文件
<typeAliases> <typeAlias alias="Music" type="com.mybatis.bean.music" /> </typeAliases>
在需要使用全量的地方可使用别名,如:
SQL的resultType上可以直接使用Policy不需要再写全量类名
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.dao.selectall"> <select id="selectmusicall" resultType="Music"> select id,name,music,musicurl from test where name = #{name}; </select> </mapper>
注解的方式起别名,在包com.mybatis.bean下的类中使用@Alias注解的类,可以直接使用注解属性,实现与typeAlias给定别名一样的效果。
Music类
@Alias("Music") public class Music{ ... }
MyBatis全局配置文件
<typeAliases>
<package name="com.mybatis.bean" />
</typeAliases>
四、environments
环境配置可以通过default来选择连接到那个数据源,可以用来做不同环境的切换。
<environments default="dev_sit"> <!-- 使用environment标签,可以根据环境的不同进行连接库的切换 --> <environment id="dev_sit"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <!-- 可以通过${}标签结合外部配置文件的属性名称进行配置引用 --> <property name="driver" value="${sit_driver}" /> <property name="url" value="${sit_url}" /> <property name="username" value="${sit_username}" /> <property name="password" value="${sit_password}" /> </dataSource> </environment> <environment id="dev_uat"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <!-- 可以通过${}标签结合外部配置文件的属性名称进行配置引用 --> <property name="driver" value="${uat_driver}" /> <property name="url" value="${uat_url}" /> <property name="username" value="${uat_username}" /> <property name="password" value="${uat_password}" /> </dataSource> </environment> </environments>
五、mappers
SQL映射有四种实现方式
使用相对于类路径的资源引用
<mappers> <mapper resource="MyBatisMapper/MusicMapper.xml"/> </mappers>
使用完全限定资源定位符(URL)
<mappers> <mapper url="file:///var/mappers/AuthorMapper.xml"/> <mapper url="file:///var/mappers/BlogMapper.xml"/> <mapper url="file:///var/mappers/PostMapper.xml"/> </mappers>
使用映射器接口实现类的完全限定类名
<mappers> <mapper class="org.mybatis.builder.AuthorMapper"/> <mapper class="org.mybatis.builder.BlogMapper"/> <mapper class="org.mybatis.builder.PostMapper"/> </mappers>
将包内的映射器接口实现全部注册为映射器
<mappers> <package name="org.mybatis.builder"/> </mappers>