Mybatis-config.xml配置文件基础配置详解

一、mybatis-config.xml 的作用

mybatis-config.xml是MyBatis核心配置文件,该文件配置了MyBatis的一些全局信息,包含数据库连接信息和Mybatis运行时所需的各种特性,以及设置和影响Mybatis行为的一些属性

二、Mybatis核心配置文件结构

configuration配置
	properties 可以配置在Java属性配置文件中
	settings 修改Mybatis在运行时的行为方式
	typeAliases 为Java类型命名一个别名(简称)
	typeHandlers 类型处理器
	objectFactory 对象工厂
	plugins 插件
	environments 环境
		environment 环境变量
			transactionManager 事务管理器
			dataSource 数据源
   		mappers 映射器

三、配置文件讲解

configuration

configuration元素是整个XML配置文件的根节点,相当于MyBatis的总管

MyBatis所有的配置信息都会存放在这里面。Mybatis提供了设置这些配置信息的方法。

Configuration可从配置文件里获取属性值,也可以通过程序直接设置

properties元素

properties元素描述的都是外部化、可替代的属性

  1. 通过外部指定的方式(通过在典型Java属性配置文件 如database.properties)

    database.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/smbms
    user=root
    password=root
    

    mybatis-config.xml 引入database.properties

    !--引入 database.properties 文件-->
    <properties resource="database.properties"/>
    	……
    	<dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${user}"/>
            <property name="password" value="${password}"/>
    	</dataSource>
    

    上述代码中,driver url username password属性将会用database.properties文件中的值来替换

  2. 直接配置为xml,并使用这些属性对配置项实现动态配置

    mybatis-config.xml

    !-- properties元素中直接配置property属性-->
    <properties>
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/smbms"/>	<property name="user" value="root"/>
        <property name="password" value="root"/></properties>
    	……
    	<dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${user}"/>
            <property name="password" value="${password}"/>
        </dataSource>
    

    在上述代码中,driver url username password将会由properties元素中设置的值来替换

  3. 两种方式优先级

    resource属性值的优先级高于property子节点配置的值

settings元素

settings元素的作用是设置一些非常重要的选项,用于设置和改变Mybatis运行中的行为

settings元素支持的属性

cacheEnabled : 对在此配置文件下的所有cache进行全局性开/关设置 - true|false

lazyLoadingEnabled : 全局性设置懒加载。如果设为false,则所有相关联的设置都会被初始化加载 -true|false

autoMappingBehavior : Mybatis对于resultMap自动映射的匹配级别 -PAPTLAL|NONE|FULL

type Aliases元素

配置类型别名,通过与MyBatis的SQL映射文件相关联,减少输入多余的完整类名,以简化操作

1.基础配置

<typeAliases>
    <!--这里给实体类取别名,方便在mapper配置文件中使用-->
    <typeAlias alias="user" type="cn.smbms.pojo.User"/>
    <typeAlias alias="provider" type="cn.smbms.pojo.Provider"/>
    ……
</typeAliases>

2.简便配置

第一种方法弊端在于:如果一个项目中有多个POJO,需要一一进行配置。所以在第二种方法中,我们通过name属性直接指定包名,让Mybatis自动去扫描指定包下的JavaBean,并设置一个别名

<typeAliases>
    <package name="cn.smbms.pojo"/>
</typeAliases>

<mapper namespace="cn.smbms.dao.user.User Mapper">
    <!--查询用户表记录数-->
    <select id="count" result Type="int">select count(1) as count from smbms_user
    </select>
    <!--查询用户列表-->
    <select id="get User List" result Type="User">select * from smbms_user/select>
</mapper>

另外,Mybatis已经为许多常见的Java基础数据类型内建了相应的类型别名。一般都与其映射类型一致,并且都是大小写不敏感的,比如映射的类型int Boolean String Integer等,它们的别名都是int Boolean String Integer

environments元素

配置不同的运行环境

但是不管增加几套运行环境,都必须要明确选择出当前唯一的一个运行环境。这是因为每个数据库都对应一个Sql Session Factory实例,需要指明哪个运行环境被创建,并把运行环境中设置的参数传递个Sql Session Factory Builder

配置如下

<environments default="development">
<!--开发环境-->
    <environment id="development">
        <transaction Manager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${user}"/>
            <property name="password" value="${password}"/>
        </dataSource>
    </environment>
    <!--测试环境-->
    <environment id="test">
        ……
    </environment>
 </environments>

上述代码中,需要注意以下几个关键点:

(1)默认的运行环境ID:通过default属性来指定当前的运行环境ID为development,对于环境ID的命名要确保唯一。

(2)transactionManager事务管理器:设置其类型为JDBC(My Batis有两种事务管理类型,即JDBC和MANAGED),直接使用JDBC的提交和回滚功能,依赖于从数据源获得连接来管理事务的生命周期。

(3)dataSource元素:使用标准的JDBC数据源接口来配置JDBC连接对象的资源。My Batis提供了三种数据源类型UNPOOLED、POOLED、JNDI),这里使用POOLED数据源类型。该类型利用“池”的概念将JDBC连接对象组织起来,减少了创建新的连接实例时所必需的初始化和认证时间,是My Batis实现的简单的数据库连接池类型,它使数据库连接可被复用,不必在每次请求时都去创建一个物理连接。对于高并发的Web应用,这是一种流行的处理方式,有利于快速响应请求。

mappers

用来定义SQL的映射语句

1.使用类资源路径获取资源

<mappers>
    <mapper resource="cn/smbms/dao/user/User Mapper.xml"/>
    <mapper resource="cn/smbms/dao/provider/Provider Mapper.xml"/></mappers>

2.使用URL获取资源

<mappers>
    <mapper url="file:///E:/sqlmappers/User Mapper.xml"/>
    <mapper url="file:///E:/sqlmappers/Provider Mapper.xml"/>
</mappers>

四、参考资料

《SSM轻量级框架应用实战》

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mybatis-config.xml是MyBatis的核心配置文件,用于配置MyBatis的全局信息和运行时行为。该文件包含了数据库连接信息和MyBatis所需的各种特性设置和属性。在实际开发中,我们通常会将数据库连接参数单独配置在db.properties文件中,然后在mybatis-config.xml中加载db.properties的属性值,这样就不需要在mybatis-config.xml中硬编码数据库连接参数。\[1\] mybatis-config.xml的结构包括: 1. configuration:MyBatis的配置信息 2. properties:可以配置在Java属性配置文件中的属性 3. settings:修改MyBatis在运行时的行为方式的设置 4. typeAliases:为Java类型命名一个别名(简称) 5. typeHandlers:类型处理器 6. objectFactory:对象工厂 7. plugins:插件 8. environments:环境配置 9. environment:环境变量 10. transactionManager:事务管理器 11. dataSource:数据源 12. mappers:映射器配置mybatis-config.xml中,可以使用<typeAliases>标签来定义别名。可以通过单个别名定义或批量别名定义来为Java类型命名别名。批量别名定义可以扫描指定包下的类,将类名作为别名(首字母大写或小写都可以)。\[3\] 总之,mybatis-config.xml是MyBatis的核心配置文件,用于配置全局信息和运行时行为,包含了数据库连接信息和各种特性设置和属性。可以通过配置文件来加载数据库连接参数,避免在配置文件中硬编码。同时,还可以使用<typeAliases>标签来定义Java类型的别名。 #### 引用[.reference_title] - *1* *3* [mybatis-config.xml文件的详情](https://blog.csdn.net/qq_60261230/article/details/126524763)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Mybatis-config.xml配置文件基础配置详解](https://blog.csdn.net/qq_43795348/article/details/109553684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值