三、MyBatis核心配置文件详解

Myth丶恋晨 2024-03-22 10:13 136阅读 0赞

在这里插入图片描述

文章目录

  • 三、MyBatis核心配置文件详解
  • 本人其他相关文章链接

三、MyBatis核心配置文件详解

核心配置文件中的标签必须按照固定的顺序:

properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?

application.properties

  1. server.port=8018
  2. jdbc.driver=com.mysql.cj.jdbc.Driver
  3. jdbc.url=jdbc:mysql://192.168.31.20:3306/litemall
  4. jdbc.username=root
  5. jdbc.password=123456

详情请看mybatis-config.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!--配置约束-->
  3. <!DOCTYPE configuration
  4. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  5. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  6. <configuration>
  7. <!--
  8. MyBatis核心配置文件中,标签的顺序:
  9. properties?,settings?,typeAliases?,typeHandlers?,
  10. objectFactory?,objectWrapperFactory?,reflectorFactory?,
  11. plugins?,environments?,databaseIdProvider?,mappers?
  12. -->
  13. <!--引入properties文件,此时就可以${属性名}的方式访问属性值-->
  14. <properties resource="application.properties" />
  15. <settings>
  16. <!--将表中字段的下划线自动转换为驼峰-->
  17. <setting name="mapUnderscoreToCamelCase" value="true"/>
  18. <!--开启延迟加载-->
  19. <setting name="lazyLoadingEnabled" value="true"/>
  20. </settings>
  21. <!--设置类型别名-->
  22. <typeAliases>
  23. <!--
  24. typeAlias:设置某个具体的类型的别名
  25. 属性:
  26. type:需要设置别名的类型的全类名
  27. alias:设置此类型的别名,若不设置此属性,该类型拥有默认的别名,即类名且不区分大小
  28. 若设置此属性,此时该类型的别名只能使用alias所设置的值
  29. -->
  30. <typeAlias type="com.mybatis.entity.User" alias="User"></typeAlias>
  31. <!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写-->
  32. <!-- <package name="com.mybatis.entity"/>-->
  33. </typeAliases>
  34. <!--
  35. environments:配置多个连接数据库的环境
  36. 属性:
  37. default:设置默认使用的环境的id
  38. -->
  39. <environments default="development">
  40. <!--
  41. environment:设置具体的连接数据库的环境信息
  42. 属性:
  43. id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,
  44. 表示默认使用的环境
  45. -->
  46. <environment id="development">
  47. <!--
  48. transactionManager:设置事务管理方式
  49. 属性:
  50. type:设置事务管理方式,type="JDBC|MANAGED"
  51. type="JDBC":设置当前环境的事务管理都必须手动处理
  52. type="MANAGED":设置事务被管理,例如spring中的AOP
  53. -->
  54. <transactionManager type="JDBC"/>
  55. <!--
  56. dataSource:设置数据源
  57. 属性:
  58. type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"
  59. type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从
  60. 缓存中直接获取,不需要重新创建
  61. type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建
  62. type="JNDI":调用上下文中的数据源
  63. -->
  64. <dataSource type="POOLED">
  65. <!--设置连接数据库的驱动-->
  66. <property name="driver" value="${jdbc.driver}"/>
  67. <!--设置连接数据库的连接地址-->
  68. <property name="url" value="${jdbc.url}"/>
  69. <!--设置连接数据库的用户名-->
  70. <property name="username" value="${jdbc.username}"/>
  71. <!--设置连接数据库的密码-->
  72. <property name="password" value="${jdbc.password}"/>
  73. </dataSource>
  74. </environment>
  75. <!--配置生产环境-->
  76. <environment id="prod">
  77. <transactionManager type="JDBC"/>
  78. <dataSource type="POOLED">
  79. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  80. <property name="url" value="jdbc:mysql://192.168.31.20:3306/litemall"/>
  81. <property name="username" value="root"/>
  82. <property name="password" value="123456"/>
  83. </dataSource>
  84. </environment>
  85. </environments>
  86. <!--引入映射文件-->
  87. <mappers>
  88. <!-- <mapper resource="mapper/UserMapper.xml"/>-->
  89. <!--
  90. 以包为单位引入映射文件
  91. 要求:
  92. 1、mapper接口所在的包要和映射文件所在的包一致
  93. 2、mapper接口要和映射文件的名字一致
  94. -->
  95. <package name="com.mybatis.mapper"/>
  96. </mappers>
  97. </configuration>

注意点1:

问题:mybatis-config.xml中的属性标签是有顺序的,乱写会报错,如图1

解决方案:按顺序书写即可,把标签放在之后即可。

在这里插入图片描述

注意点2:实体类可以设置别名,

问题:为啥需要设置别名?一定要设置吗?

答案:不一定非得设置,但是设置别名后使用更加简洁、清爽。

比如com/mybatis/mapper/UserMapper.xml中的定义,瞬间清爽了许多。

在这里插入图片描述

注意点3:针对注意点2中,配置类别名有2种方式

  • 方式1:单独一个一个引入实体类。

  • 方式2:指定包名,默认会把包下面所有实体定义别名,实体类的类名作为别名,且不区分大小写。

注意点4:设置类别名时,采用标签如果设置alias属性,那么这个alias属性值就是唯一的别名且不区分大小写;如果没设置alias属性,那么alias属性值就采用类名。具体请看下方代码,resultType属性值设置大小写都能查询结果:

  1. <select id="getAllUser" resultType="User">
  2. select * from litemall.litemall_user
  3. </select>
  4. ------------------------------------------------
  5. <select id="getAllUser" resultType="user">
  6. select * from litemall.litemall_user
  7. </select>

注意点5:mybatis-config.xml中引入映射文件也有2种方式

  • 方式1:单独一个一个引入xml文件,比如

  • 方式2:指定包名,注意其中的2点注意事项

注意点6:针对注意点5中如果采用方式1引入指定的xx.xml,那么它可以放在任何目录下,比如如图1,UserMapper接口在包com.mybatis.mapper路径下,而UserMapper.xml则在resources下的mapper路径下,哪怕两个路径不同名也没问题;但是如果采用方式2,包名不同名的话就会报错如图2,所以必须同名,改为如图3中的效果就可以正常运行。

在这里插入图片描述

如图1

在这里插入图片描述

如图2

在这里插入图片描述

如图3

注意点7:mybatis-config.xml中可以配置多环境,比如开发环境,生产环境等,他们读取的是不同的配置信息,调用不同的数据库。其中标签中的default属性,用来指定加载哪个环境的配置信息。

  1. <!--
  2. environments:配置多个连接数据库的环境
  3. 属性:
  4. default:设置默认使用的环境的id
  5. -->
  6. <environments default="development">
  7. <!--
  8. environment:设置具体的连接数据库的环境信息
  9. 属性:
  10. id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,
  11. 表示默认使用的环境
  12. -->
  13. <environment id="development">
  14. <!--
  15. transactionManager:设置事务管理方式
  16. 属性:
  17. type:设置事务管理方式,type="JDBC|MANAGED"
  18. type="JDBC":设置当前环境的事务管理都必须手动处理
  19. type="MANAGED":设置事务被管理,例如spring中的AOP
  20. -->
  21. <transactionManager type="JDBC"/>
  22. <!--
  23. dataSource:设置数据源
  24. 属性:
  25. type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"
  26. type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从
  27. 缓存中直接获取,不需要重新创建
  28. type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建
  29. type="JNDI":调用上下文中的数据源
  30. -->
  31. <dataSource type="POOLED">
  32. <!--设置连接数据库的驱动-->
  33. <property name="driver" value="${jdbc.driver}"/>
  34. <!--设置连接数据库的连接地址-->
  35. <property name="url" value="${jdbc.url}"/>
  36. <!--设置连接数据库的用户名-->
  37. <property name="username" value="${jdbc.username}"/>
  38. <!--设置连接数据库的密码-->
  39. <property name="password" value="${jdbc.password}"/>
  40. </dataSource>
  41. </environment>
  42. <!--配置生产环境-->
  43. <environment id="prod">
  44. <transactionManager type="JDBC"/>
  45. <dataSource type="POOLED">
  46. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  47. <property name="url" value="jdbc:mysql://192.168.31.20:3306/litemall"/>
  48. <property name="username" value="root"/>
  49. <property name="password" value="123456"/>
  50. </dataSource>
  51. </environment>
  52. </environments>

`注意点8:mybatis-config.xml中可以指定加载哪个配置文件名称的信息,假设你数据库连接配置放在自定义配置文件名称叫xx.properties,在这里就可以指定加载,这里主要和标签一起使用,通过${}获取属性值。

  1. <!--引入properties文件-->
  2. <properties resource="application.properties" />

本人其他相关文章链接

1.一、MyBatis简介:MyBatis历史、MyBatis特性、和其它持久化层技术对比、Mybatis下载依赖包流程
2.二、搭建MyBatis采用xml方式,验证CRUD(增删改查操作)
3.三、MyBatis核心配置文件详解
4.四、MyBatis获取参数值的两种方式(重点)
5.五、MyBatis的增删改查模板(参数形式包括:String、对象、集合、数组、Map)
6.六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
7.七、MyBatis自定义映射resultMap
8.八、(了解即可)MyBatis懒加载(或者叫延迟加载)
9.九、MyBatis动态SQL
10.十、MyBatis的缓存
11.十一、MyBatis的逆向工程
12.十二、MyBatis分页插件

发表评论

表情:
评论列表 (有 0 条评论,136人围观)

还没有评论,来说两句吧...

相关阅读