三、MyBatis核心配置文件详解
核心配置文件中的标签必须按照固定的顺序:
properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?
application.properties
server.port=8018
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.31.20:3306/litemall
jdbc.username=root
jdbc.password=123456
详情请看mybatis-config.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核心配置文件中,标签的顺序:
properties?,settings?,typeAliases?,typeHandlers?,
objectFactory?,objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,databaseIdProvider?,mappers?
-->
<!--引入properties文件,此时就可以${属性名}的方式访问属性值-->
<properties resource="application.properties" />
<settings>
<!--将表中字段的下划线自动转换为驼峰-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--开启延迟加载-->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
<!--设置类型别名-->
<typeAliases>
<!--
typeAlias:设置某个具体的类型的别名
属性:
type:需要设置别名的类型的全类名
alias:设置此类型的别名,若不设置此属性,该类型拥有默认的别名,即类名且不区分大小
写
若设置此属性,此时该类型的别名只能使用alias所设置的值
-->
<typeAlias type="com.mybatis.entity.User" alias="User"></typeAlias>
<!--以包为单位,设置改包下所有的类型都拥有默认的别名,即类名且不区分大小写-->
<!-- <package name="com.mybatis.entity"/>-->
</typeAliases>
<!--
environments:配置多个连接数据库的环境
属性:
default:设置默认使用的环境的id
-->
<environments default="development">
<!--
environment:设置具体的连接数据库的环境信息
属性:
id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,
表示默认使用的环境
-->
<environment id="development">
<!--
transactionManager:设置事务管理方式
属性:
type:设置事务管理方式,type="JDBC|MANAGED"
type="JDBC":设置当前环境的事务管理都必须手动处理
type="MANAGED":设置事务被管理,例如spring中的AOP
-->
<transactionManager type="JDBC"/>
<!--
dataSource:设置数据源
属性:
type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"
type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从
缓存中直接获取,不需要重新创建
type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建
type="JNDI":调用上下文中的数据源
-->
<dataSource type="POOLED">
<!--设置连接数据库的驱动-->
<property name="driver" value="${jdbc.driver}"/>
<!--设置连接数据库的连接地址-->
<property name="url" value="${jdbc.url}"/>
<!--设置连接数据库的用户名-->
<property name="username" value="${jdbc.username}"/>
<!--设置连接数据库的密码-->
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<!--配置生产环境-->
<environment id="prod">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.31.20:3306/litemall"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<!-- <mapper resource="mapper/UserMapper.xml"/>-->
<!--
以包为单位引入映射文件
要求:
1、mapper接口所在的包要和映射文件所在的包一致
2、mapper接口要和映射文件的名字一致
-->
<package name="com.mybatis.mapper"/>
</mappers>
</configuration>
注意点1:
问题:mybatis-config.xml中的属性标签是有顺序的,乱写会报错,如图1
解决方案
:按顺序书写即可,把<typeAliases>标签放在<properties>之后即可。
注意点2
:实体类可以设置别名,
问题:为啥需要设置别名?一定要设置吗?
答案
:不一定非得设置,但是设置别名后使用更加简洁、清爽。
比如com/mybatis/mapper/UserMapper.xml中的定义<select id=“getUserById” resultType=“com.mybatis.entity.User”>,请看resultType属性配置包名,如果包名嘎嘎长,那么这里也会写的嘎嘎长,很不优雅;而如果在mybatis-config.xml定义别名,那么可以写成<select id=“getAllUser” resultType=“User”>,瞬间清爽了许多。
注意点3
:针对注意点2中,配置类别名有2种方式
-
方式1
:单独一个一个引入实体类。
<typeAlias type="com.mybatis.entity.User"></typeAlias>
-
方式2
:指定包名,默认会把包下面所有实体定义别名,实体类的类名作为别名,且不区分大小写。
<package name="com.mybatis.entity"/>
注意点4
:设置类别名时,采用<typeAlias>标签如果设置alias属性,那么这个alias属性值就是唯一的别名且不区分大小写;如果没设置alias属性,那么alias属性值就采用类名。具体请看下方代码,resultType属性值设置大小写都能查询结果:
<select id="getAllUser" resultType="User">
select * from litemall.litemall_user
</select>
------------------------------------------------
<select id="getAllUser" resultType="user">
select * from litemall.litemall_user
</select>
注意点5
:mybatis-config.xml中引入映射文件也有2种方式
-
方式1
:单独一个一个引入xml文件,比如
<mapper resource="mapper/UserMapper.xml"/>
-
方式2
:指定包名,注意其中的2点注意事项
<!--
以包为单位引入映射文件
要求:
1、mapper接口所在的包要和映射文件所在的包一致
2、mapper接口要和映射文件的名字一致
-->
<package name="com.mybatis.mapper"/>
注意点6
:针对注意点5中如果采用方式1引入指定的xx.xml,那么它可以放在任何目录下,比如如图1,UserMapper接口在包com.mybatis.mapper路径下,而UserMapper.xml则在resources下的mapper路径下,哪怕两个路径不同名也没问题;但是如果采用方式2,包名不同名的话就会报错如图2,所以必须同名,改为如图3中的效果就可以正常运行。
注意点7
:mybatis-config.xml中可以配置多环境,比如开发环境,生产环境等,他们读取的是不同的配置信息,调用不同的数据库。其中标签<environments>中的default属性,用来指定加载哪个环境的配置信息。
<!--
environments:配置多个连接数据库的环境
属性:
default:设置默认使用的环境的id
-->
<environments default="development">
<!--
environment:设置具体的连接数据库的环境信息
属性:
id:设置环境的唯一标识,可通过environments标签中的default设置某一个环境的id,
表示默认使用的环境
-->
<environment id="development">
<!--
transactionManager:设置事务管理方式
属性:
type:设置事务管理方式,type="JDBC|MANAGED"
type="JDBC":设置当前环境的事务管理都必须手动处理
type="MANAGED":设置事务被管理,例如spring中的AOP
-->
<transactionManager type="JDBC"/>
<!--
dataSource:设置数据源
属性:
type:设置数据源的类型,type="POOLED|UNPOOLED|JNDI"
type="POOLED":使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从
缓存中直接获取,不需要重新创建
type="UNPOOLED":不使用数据库连接池,即每次使用连接都需要重新创建
type="JNDI":调用上下文中的数据源
-->
<dataSource type="POOLED">
<!--设置连接数据库的驱动-->
<property name="driver" value="${jdbc.driver}"/>
<!--设置连接数据库的连接地址-->
<property name="url" value="${jdbc.url}"/>
<!--设置连接数据库的用户名-->
<property name="username" value="${jdbc.username}"/>
<!--设置连接数据库的密码-->
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<!--配置生产环境-->
<environment id="prod">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.31.20:3306/litemall"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
`注意点8:mybatis-config.xml中可以指定加载哪个配置文件名称的信息,假设你数据库连接配置放在自定义配置文件名称叫xx.properties,在这里就可以指定加载,这里主要和<environments>标签一起使用,通过${}获取属性值。文章来源:https://www.toymoban.com/news/detail-428709.html
<!--引入properties文件-->
<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分页插件文章来源地址https://www.toymoban.com/news/detail-428709.html
到了这里,关于三、MyBatis核心配置文件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!