三、MyBatis核心配置文件详解

简介: 三、MyBatis核心配置文件详解

image.png

@[toc]

三、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
AI 代码解读

详情请看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>
AI 代码解读

注意点1:

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

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

image.png

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

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

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

比如com/mybatis/mapper/UserMapper.xml中的定义\,请看resultType属性配置包名,如果包名嘎嘎长,那么这里也会写的嘎嘎长,很不优雅;而如果在mybatis-config.xml定义别名,那么可以写成\,瞬间清爽了许多。

image.png

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

  • 方式1:单独一个一个引入实体类。
<typeAlias type="com.mybatis.entity.User"></typeAlias>
AI 代码解读
  • 方式2:指定包名,默认会把包下面所有实体定义别名,实体类的类名作为别名,且不区分大小写。
<package name="com.mybatis.entity"/>
AI 代码解读

注意点4:设置类别名时,采用\标签如果设置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>
AI 代码解读

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

  • 方式1:单独一个一个引入xml文件,比如
<mapper resource="mapper/UserMapper.xml"/>
AI 代码解读
  • 方式2:指定包名,注意其中的2点注意事项
<!--
            以包为单位引入映射文件
            要求:
            1、mapper接口所在的包要和映射文件所在的包一致
            2、mapper接口要和映射文件的名字一致
-->
<package name="com.mybatis.mapper"/>
AI 代码解读

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

image.png

如图1

image.png

如图2

image.png

如图3

注意点7:mybatis-config.xml中可以配置多环境,比如开发环境,生产环境等,他们读取的是不同的配置信息,调用不同的数据库。其中标签\中的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>
AI 代码解读

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

<!--引入properties文件-->
<properties resource="application.properties" />
AI 代码解读

本人其他相关文章链接

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分页插件

image.png

重要信息

image.png
image.png
image.png

目录
打赏
0
15
15
0
230
分享
相关文章
mybatis环境搭建步骤(含配置文件代码)
mybatis环境搭建步骤(含配置文件代码)
初识MyBatis(搭建MyBatis、简单增删改查、核心配置文件讲解及获取参数值)
初识MyBatis(搭建MyBatis、简单增删改查、核心配置文件讲解及获取参数值)
272 0
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
【1月更文挑战第3天】 一、核心配置文件详解 二、默认的类型别名 三、MyBatis的增删改查 四、MyBatis获取参数值的两种方式 1、单个字面量类型的参数 2、多个字面量类型的参数 3、map集合类型的参数 4、实体类类型的参数 5、使用@Param标识参数
207 2
Mybatis之核心配置文件详解、默认类型别名、Mybatis获取参数值的两种方式
(精)SSM框架整合的配置文件(spring+spring MVC+mybatis)
(精)SSM框架整合的配置文件(spring+spring MVC+mybatis)
118 0
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
344 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
254 6
【MyBatis】主配置文件
【MyBatis】主配置文件
102 0
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
212 0
Mybatis快速入门,Mybatis的核心配置文件
Mybatis快速入门,Mybatis的核心配置文件
67 1
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)

物联网

+关注