核心配置的文件的"详解" -->(优化,核心配置文件)
“核心配置文件的前言”:
核心配置文件中的标签必须按照固定的顺序 ---> (“有的标签可以不写,但顺序一定不能乱”):
properties、
settings、
typeAliases、
typeHandlers、
objectFactory、
objectWrapperFactory、
reflectorFactory、
plugins、
environments、
databaseIdProvider、
mappers
1- 优化点:连接 "数据库" 的信息,用"jdbc.properties" 来映射进去。(1)
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230216212952860-549727080.png)
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230216212640234-2113070507.png)
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230216214327682-638058893.png)
// "jdbc.properties文件'"
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/learn_mybatis?serverTimezone=UTC
jdbc.username=root
jdbc.password=00000
2-优化点:类型别名(2)
-
在resultType:默认的映射关系("表的字段"和"实体类的属性"一致)的情况-->使用
为什么使用“类型别名”
1-因为:
后期 "导入实体类的包" ,因为包名太长,而需要 "类型别名" 来简化
2-使用:
“核心配置” 文件用"类型别名"来简化后,在"映射文件"中可以用。
以“包”为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230218132927213-549915265.png)
因为 “核心配置文件” 以 “pojo包” 为单位,所以 “拥有默认的别名,即类名且不区分大小写”
比如我现在pojo包,下面有“User实体类”
核心配置文件已经配置了 “<typeAlias type="com.atguigu.pojo"></typeAlias>”
所以,我在“映射文件写User、user都可以。
而且,如果还有一个 “Studnt实体类”,我在“核心配置”文件也不需要修改,而且还能再在”映射文件“中直接写- Student、student
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230218125517693-1241208409.png)
3-优化点:mapper,优化导入“映射文件”(3)
为什么“优化” - “核配置文件”的 <mappers>
// <mappers>的作用:用来导入“映射文件”
因为:
如果不优化为“以包为单位”,那一个“实体类的映射文件”就需要 -写一条 <mappers>,非常麻烦
所以:
以包为单位,将包下所有的映射文件引入核心配置文件
注意:
1. 此方式必须保证 "mapper接口" 和 "mapper映射文件" 必须在相同的包下
2. "mapper接口" 要和 "mapper映射文件" 的名字一致
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230218135844251-737303573.png)
细节点:
在resources下面,新建“包结构”,需要用/线。
已我的这个为例子:com/atguigu/mapper ,才可以新建“包结构”
![](https://img2023.cnblogs.com/blog/2871529/202302/2871529-20230218142946195-329299547.png)
<!-- 引入MyBatis的映射文件 -->
<mappers>
<!-- <mapper resource="Mappers.UserMapper.xml"/> -->
<!--
以包为单位,将包下所有的映射文件引入核心配置文件
注意:
1. 此方式必须保证 "mapper接口" 和 "mapper映射文件" 必须在相同的包下
2. "mapper接口" 要和 "mapper映射文件" 的名字一致
-->
<package name="com.atguigu.mapper"/>
</mappers>