Mybatis-6配置文件详解-mybatis-config.xml
mybatis-config.xml-配置文件详解
·
Mybatis-6配置文件详解-mybatis-config.xml
前言
mybatis的核心配置文件(mybatis-config.xml),比如配置jdbc连接信息,注册mapper等等,我们需要对这个配置文件有详细的了解。
区分config.xml和XxMapper.xml的区别:
- config.xml是用来配置mybatis,他是总配置,配置Mapper只是他的功能之一。在配置Mapper方面,目前我用到的<mapper>是用来设置mapper.xml的路径的,<typeAliases>是用来简写XXType的
- XxMapper是用来实现XxMapper接口的,用来写sql语句的。
本文仅列出一些常用的属性。
参考文档:xml配置文档
一、属性<properties>
1、myBatis.xml配置文件
- 这儿的配置属性,指的是在resource文件夹下面的myBatis.xml中的<properties>
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value=""/>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
- property 的value,可以从外部文件读取。演示从外部读取
新建外部文件,src/main/resources/jdbc.properties
#属性名是自定义的
#老版本驱动是com.mysql.jdbc.Driver,我的项目使用旧的会报错
jdbc.driver=com.mysql.cj.jdbc.Driver
#等号前后不要加空格
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
- 使用value="${username}"这样的形式,读取properties中的username的值
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
2、properties文件
- 配置在resource文件夹下面
- 文件后缀为.properties,不能是property
- username=hsp的形式连接。等号前后不加“引号”;也不要加空格,避免引用带了空格,导致出错;也不要用“;”分号结尾
- 为了能使用properties,需要在mybatis.xml文件中添加properties的位置。保存在默认resources路径下。
<configuration>
<!--设置外部引入文件的路径-->
<properties resource="jdbc.properties"/>
</configuration>
- 更改为从外部引用后,出现的第一个错误就是,添加的中文信息出现乱码了。
- 猜测是“&”换了位置后不能正常解析,统一改为&后,能正常录入中文了。(有效)
- 可能是ISO-8859-1编码的原因,因为把&拆开了,把分号";"当作截断符了。所以也可以调整编码方式(无效)

3、pom.xml文件
- 配置在工程目录下面
- 代码运行后,文件都是从target目录下读取的,为了build项目时,生成target目录下的properties,需要在pom.xml中配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
二、全局参数定义<settings>
- logImpl,配置MyBatis自带的日志输出-查看原生的sql
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
三、类型别名/别名处理器<typeAliases>
- 类型别名可设置为 Java 类型设置一个短名字SimpleName。
<!--配置别名。放在配置的靠前的位置-->
<typeAliases>
<typeAlias type="com.stein.entity.Monster" alias="Monster" />
</typeAliases>
然后在Mapper.xml文件里面,就可以使用别名了
//<update id="updateMonster" parameterType="com.stein.entity.Monster">
<update id="updateMonster" parameterType="Monster">
- 也可以指定一个包名, 这样在同一个包下,如果有多个别名需要配置,就会简化很多
比如:
com.stein.entity.Monster
com.stein.entity.User
com.stein.entity.Monk
<typeAliases>
<!--
如果一个包下有很多的类,我们可以直接引入包,这样
该包下面的所有类名,可以直接使用
-->
<package name="com.stein.entity"/>
</typeAliases>
四、类型处理器<typeHandlers>
- MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。
- 时间格式(年-月-日 时:分:秒),在java端可以设置Date格式,在DB端可以设置成TimeStamp(推荐)或者datetime。
五、环境配置<environments>
- 1.resource注册Mapper文件:XXXMapper.xml文件(常用,使用过)
- 2.class:接口注解实现
- 3.url:外部路径,使用很少,不推荐,
- 4.package方式注册:
并测试
注意事项
Mybatis对config.xml的配置顺序有要求,参照文档的顺序排列,否则会报红,而且运行会出错。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)