文章目录
- mybatis-config.xml-配置文件详解
- 说明
- 文档地址:
- 配置文件属性解析
- properties 属性
- 应用实例
- settings 全局参数定义
- 应用实例
- typeAliases 别名处理器
- 举例说明
- typeHandlers 类型处理器
- environments 环境
- environment 属性
- 应用实例
- mappers配置
mybatis-config.xml-配置文件详解
说明
mybatis 的核心配置文件(mybatis-config.xml),比如配置jdbc 连接信息,注册mapper等等,我们需要对这个配置文件有详细的了解。
文档地址:
官方文档: https://mybatis.org/mybatis-3/zh/configuration.html
配置文件属性解析
properties 属性
通过该属性,可以指定一个外部的jdbc.properties 文件,引入我们的jdbc 连接信息。
应用实例
- 创建NLC_MyBatis\mybatis_quickstart\src\main\resources\jdbc.properties
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?userSSL=true&userUnicode=true&char
acterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver
-
修改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> <!--引入外部的jdbc.properties--> <properties resource="jdbc.properties"/> <environments default="development"> <environment id="development"> <!--配置事务管理器--> <transactionManager type="JDBC"/> <!--配置数据源 1. 我们使用外部的properties文件来设置相关的值 2. 这个属性文件,需要统一放在 resources目录/类加载路径 --> <dataSource type="POOLED"> <!--配置驱动--> <property name="driver" value="${jdbc.driver}"/> <!--从外部文件动态使用--> <!--配置连接mysql-url 解读: 1. jdbc:mysql 协议 2. 127.0.0.1:3306 : 指定连接mysql的ip+port 3. mybatis: 连接的DB 4. useSSL=true 表示使用安全连接 5. & 表示 & 防止解析错误 6. useUnicode=true : 使用unicode 作用是防止编码错误 7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码 --> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.user}"/> <property name="password" value="${jdbc.pwd}"/> </dataSource> </environment> </environments>
- 修改父项目的pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试
settings 全局参数定义
- 感兴趣的可以看手册
- settings 列表,通常使用默认
应用实例
<!--配置MyBatis自带的日志输出-查看原生的sql-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
typeAliases 别名处理器
-
别名是为Java 类型命名一个短名字。它只和XML 配置有关,用来减少类名重复的部分
-
如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理
-
注意指定别名后,还是可以使用全名的
举例说明
- 修改NLC_MyBatis\mybatis_quickstart\src\main\resources\mybatis-config.xml
<!--配置别名-->
<typeAliases>
<!-- 为某个mapper 指定一个别名, 下面可以在XxxxxMapper.xml 做相应简化处理-->
<!--<typeAlias type="com.nlc.entity.Monster" alias="Monster"/>-->
<!--
如果一个包下有很多的类,我们可以直接引入包,这样
该包下面的所有类名,可以直接使用
-->
<package name="com.nlc.entity"/>
</typeAliases>
- 修改MonsterMapper.xml 并完成测试
<!--没有在mybatis-config.xml 指定typealiases 时,需要给Monster 指定全类名
<insert id="addMonster" parameterType="com.nlc.entity.Monster"-->
<!-- useGeneratedKeys="true" keyProperty="id"-->
<insert id="addMonster" parameterType="Monster" useGeneratedKeys="true" keyProperty="id">
<!--useGenerated Keys是一个在数据库操作中常用的选项或属性。它用于指示数据库返回生成的主键值,
keyProperty 用来定义和操作对象的主键。
-->
INSERT INTO monster (age,birthday,email,gender,name,salary)
VALUES(#{age},#{birthday},#{email},#{gender},#{name},#{salary})
</insert>
typeHandlers 类型处理器
- 用于java 类型和jdbc 类型映射
- Mybatis 的映射基本已经满足,不太需要重新定义
- 这个我们使用默认即可,也就是mybatis 会自动的将java 和jdbc 类型进行转换.
- java 类型和jdbc 类型映射关系一览[ 手册]
https://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers
environments 环境
1、MyBatis 可以配置多种环境,比如开发、测试和生成环境需要有不同的配置
2、每种环境使用一个 environment 标签进行配置并指定唯一标识符
3、可以通过 environment 标签中的 default 属性指定一个环境的标识符来快速的切换环境
environment 属性
environments:指定具体环境,mybatis 可以配置多种环境,default 指定使用某种环境,可以达到快速切换环境。
environment:配置一个具体的环境信息,id属性代表当前环境的唯一标识,
必须有下面两个标签:
transactionManager:事务管理器
dataSource:数据源
应用实例
<environments default="development">
<environment id="development">
<!--配置事务管理器-->
<transactionManager type="JDBC"/>
<!--配置数据源
解读
1. 我们使用外部的properties文件来设置相关的值
2. 这个属性文件,需要统一的放在 resources目录/类加载路径
-->
<dataSource type="POOLED">
<!--配置驱动-->
<property name="driver" value="${jdbc.driver}"/>
<!--配置连接mysql-url
解读:
1. jdbc:mysql 协议
2. 127.0.0.1:3306 : 指定连接mysql的ip+port
3. mybatis: 连接的DB
4. useSSL=true 表示使用安全连接
5. & 表示 & 防止解析错误
6. useUnicode=true : 使用unicode 作用是防止编码错误
7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码
8.温馨提示:不要背,直接使用即可
-->
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.pwd}"/>
</dataSource>
</environment>
</environments>
mappers配置
- resource 注册Mapper 文件: XXXMapper.xml 文件(常用)
<mapper resource="com/nlc/mapper/MonsterMapper.xml"/>
<!--解读
1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml
2. 但是需要在mybatis-config.xml注册/引入含注解的类
3. 如果没有引入,不能使用
-->
- class:接口注解实现(使用过)
<!--解读
1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml
2. 但是需要在mybatis-config.xml注册/引入含注解的类
3. 如果没有引入,不能使用
-->
<mapper class="com.nlc.mapper.MonsterAnnotation"/>
-
url:外部路径,使用很少,不推荐,
<mapper url="file:///D:\yy\kk\yy\MOnsterMapper.xml" />
-
package 方式注册: 并测试
<!--
1. 当一个包下有很多的Mapper.xml 文件和基于注解实现的接口时,
为了方便,我们可以以包方式进行注册
2. 将下面的所有xml 文件和注解接口都进行注册
-->
<package name="com.nlc.mapper"/>