跟老杜从零入门MyBatis到架构思维(五)MyBatis核心配置文件-environment

MyBatis 核心配置综述之 Configuration详解 颓废青年,快出来挨打!点击上方“Java极客技术”,选择“设为星标”后台回复“java”,获取Java知识体系/面试必看资料资料会持续更新,已更新第四次!文章精品专栏记一... 阅读详情

MyBatis核心配置文件详解

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。

相关的学习资料给大家备好了

​​点这里!​

<?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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/powernode"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="CarMapper.xml"/>
        <mapper resource="CarMapper2.xml"/>
    </mappers>
</configuration>
  • configuration:根标签,表示配置信息。
  • environments:环境(多个),以“s”结尾表示复数,也就是说mybatis的环境可以配置多个数据源。
  • default属性:表示默认使用的是哪个环境,default后面填写的是environment的id。default的值只需要和environment的id值一致即可。
  • environment:具体的环境配置(主要包括:事务管理器的配置 + 数据源的配置)
  • id:给当前环境一个唯一标识,该标识用在environments的default后面,用来指定默认环境的选择。
  • transactionManager:配置事务管理器
  • type属性:指定事务管理器具体使用什么方式,可选值包括两个
  • JDBC:使用JDBC原生的事务管理机制。底层原理:事务开启conn.setAutoCommit(false); ...处理业务...事务提交conn.commit();
    • MANAGED:交给其它容器来管理事务,比如WebLogic、JBOSS等。如果没有管理事务的容器,则没有事务。没有事务的含义:只要执行一条DML语句,则提交一次。
  • dataSource:指定数据源
  • type属性:用来指定具体使用的数据库连接池的策略,可选值包括三个
  • UNPOOLED:采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想。
  • property可以是:
  • driver 这是 JDBC 驱动的 Java 类全限定名。
    • defaultNetworkTimeout 等待数据库操作完成的默认网络超时时间(单位:毫秒)
    • defaultTransactionIsolationLevel 默认的连接事务隔离级别。
    • password 登录数据库的密码。
    • username 登录数据库的用户名。
    • url 这是数据库的 JDBC URL 地址。
  • POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现。
  • property可以是(除了包含UNPOOLED中之外):
  • poolMaximumActiveConnections 在任意时间可存在的活动(正在使用)连接数量,默认值:10
    • 其它....
    • poolMaximumIdleConnections 任意时间可能存在的空闲连接数。
  • JNDI:采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。如果不是web或者maven的war工程,JNDI是不能使用的。
  • property可以是(最多只包含以下两个属性):
  • initial_context 这个属性用来在 InitialContext 中寻找上下文(即,initialContext.lookup(initial_context))这是个可选属性,如果忽略,那么将会直接从 InitialContext 中寻找 data_source 属性。
    • data_source 这是引用数据源实例位置的上下文路径。提供了 initial_context 配置时会在其返回的上下文中进行查找,没有提供时则直接在 InitialContext 中查找。
  • mappers:在mappers标签中可以配置多个sql映射文件的路径。
  • mapper:配置某个sql映射文件的路径
  • resource属性:使用相对于类路径的资源引用方式
    • url属性:使用完全限定资源定位符(URL)方式

1. environment

mybatis-003-configuration

<?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>
    <!--默认使用开发环境-->
    <!--<environments default="dev">-->
    <!--默认使用生产环境-->
    <environments default="production">
        <!--开发环境-->
        <environment id="dev">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/powernode"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
        <!--生产环境-->
        <environment id="production">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="CarMapper.xml"/>
    </mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="car">
    <insert id="insertCar">
        insert into t_car(id,car_num,brand,guide_price,produce_time,car_type) values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})
    </insert>
</mapper>
package com.powernode.mybatis;

import com.powernode.mybatis.pojo.Car;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

public class ConfigurationTest {

    @Test
    public void testEnvironment() throws Exception{
        // 准备数据
        Car car = new Car();
        car.setCarNum("133");
        car.setBrand("丰田霸道");
        car.setGuidePrice(50.3);
        car.setProduceTime("2020-01-10");
        car.setCarType("燃油车");

        // 一个数据库对应一个SqlSessionFactory对象
        // 两个数据库对应两个SqlSessionFactory对象,以此类推
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

        // 使用默认数据库
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        int count = sqlSession.insert("insertCar", car);
        System.out.println("插入了几条记录:" + count);

        // 使用指定数据库
        SqlSessionFactory sqlSessionFactory1 = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"), "dev");
        SqlSession sqlSession1 = sqlSessionFactory1.openSession(true);
        int count1 = sqlSession1.insert("insertCar", car);
        System.out.println("插入了几条记录:" + count1);
    }
}
 

执行结果:

mybatis配置使用多个数据源 mybatis如何配置使用多个数据源? 出自http://zhangbo-peipei-163-com.iteye.com/blog/2052924 一、数据库连接properties配置文件,两个数据源的地址: Java代码   hd.jdbc.driverClassName=com.mysql.jdbc.Driver  hd.jdbc.url=jdbc:mysql: 阅读详情

相关推荐

【自动驾驶端到端5:VADv2: End-to-End Vectorized Autonomous Driving via Probabilistic Planning】

从大规模人类驾驶演示中学习类人驾驶策略是有希望的。但是,规划的不确定性使得从驾驶演示中提取驾驶知识是有挑战性的。从统计学习的角度来看,动作(包括实际和速度)是高度随机的,受许多无法建模的潜在因素影响。

weixin_40000560的博客 1404

Mybatis主配置—Configuration

Mybatis配置信息主要分为Mybatis项目级配置信息(Configuration)和执行SQL语句的Mapper配置文件,那么什么是Mybatis项目级配置信息Configuration呐?Configuration的主要职责就是用于描述Mybatis的配置信息,其内部定义了大量用于控制Mybatis运行时行为的属性。其它组件可以通过调用Configuration对象的形式来获取配置信息。

乐只悠悠 4262

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

MyBatis核心配置文件之environments

MyBatis核心配置文件之environments

weixin_52385232的博客 725

单细胞转录组数据质控实战:如何用Seurat精准过滤低质量细胞(附完整代码)

本文详细介绍了使用Seurat进行单细胞转录组数据质控的实战方法,包括基因检出数、分子计数和线粒体基因比例等关键指标的解读与可视化技巧。通过动态阈值策略和高级质控技巧(如双细胞检测和红细胞过滤),帮助研究者精准过滤低质量细胞,提升数据分析可靠性。附完整代码示例,适合生物信息学研究人员参考实践。

ii567的博客 824

Mamba再封神!与YOLO结合,拿下二区!好发不卷!

相比传统的YOLO改进,Mamba是新技术,两者结合尚在蓝海阶段,可发挥空间大!更为关键的是,它在检测精度和速度方面,都让以往的YOLO模型难以望其项背!比如代表模型Mamba YOLO,便在参数减少45.5%、FLOPs减少50%的同时,精度还比YOLOv8高6.1%!这主要得益于,Mamba能够捕捉长期依赖关系,而YOLO则擅长捕捉局部特征,两者能够优势互补,且Mamba线性复杂度的特性,也有利于提高计算效率!为了让大家能够紧跟前沿发展,找到更多灵感启发,我给大家10种。

2401_88190197的博客 2506

mybatis 配置文件configuration environments以及单独使用mybatis的demo

前一篇我们学会了使用配置缓存,使用缓存,这篇我们来看看mybatis 的主配置文件,即mybatis 中的事务和数据源的配置。 mybatis 是一个orm框架,他的使用让我们省去了一些和业务无关的代码,能提高我们的开发速度,尤其是在业务不是很多但是 链接数据库,从中查询的比较多的话你会发现很多时候你在做获取数据源链接即Connection  以及ResultSet 结果集的获取并将结果集组装成

bit-cafe 6208

工业相机图像格式深度解析:从Mono8到Mono12的选型与应用

本文深度解析工业相机黑白图像格式,重点对比Mono8、Mono10与Mono12的核心差异。文章从位深、动态范围和数据量等关键概念切入,详细阐述了不同格式的优缺点及适用场景,为工业视觉项目中的相机选型提供实战指南,帮助用户在精度、速度与成本间做出最优决策。

weixin_29207439的博客 260

Mybatis配置文件之<environments>配置元素解析

Mybatis配置文件之配置元素解析 1. 概述 首先我们看下在之前文章中的关于mybatis-config.xml文件中的environments元素的配置: &lt;environments default="development"&gt; &lt;environment id="development"&gt; &lt;!-- 使用jd...

渔潭的博客 4513

百度慧眼人口位置数据:从原理到实战的GIS处理全流程

本文详细解析百度慧眼人口位置数据的处理全流程,从基本原理到实战应用。通过空间网格划分、终端数量统计等技术手段,百度慧眼数据能准确反映人群分布特征。文章涵盖坐标系转换、核密度分析、热力图制作等GIS处理技巧,并分享商业选址、城市规划等典型业务场景的解决方案,帮助读者高效利用这一数据资源。

weixin_30872157的博客 534

099、LLC谐振变换器的大信号建模

摘要:LLC谐振变换器的小信号模型在大信号工况(如启动、负载突变)下会失效,导致保护失灵、过冲等问题。通过状态空间平均法和分段线性化建立大信号模型,需关注谐振腔能量转移、模态切换条件及离散化实现。实际应用中,该模型可优化启动策略、精确设定保护阈值并验证环路补偿,但需注意变压器饱和等非线性因素。经验表明,大信号建模能显著提升设计可靠性,但需结合实验验证(误差<15%)和工具适配(如MATLAB离线仿真与C语言嵌入式调试)。三颗炸裂的MOSFET警示:深入掌握大信号建模是避免关键故障的必要手段。

Jack010169的博客 45

跟着老杜学MyBatis+第4天+MyBatis核心配置文件详解

JNDI的方式:表示对接JNDI服务器中的连接池。充分发挥数据库连接池的性能。最大的空闲连接数量。默认值5,如何已经有了5个空闲连接,当第6个连接要空闲下来的时候,连接池会选择关闭该连接对象。最大的活动的连接数量就是连接池连接数量的上限。默认值10,如果有10个请求正在使用这10个连接,第11个请求只能等待空闲连接。environments:环境(多个),以“s”结尾表示复数,也就是说mybatis的环境可以配置多个数据源。poolMaximumActiveConnections:最大的活动的连接数量。

少年一贯快马扬帆,道阻且长不转弯; 要盛大,要绚烂,要哗然; 要用理想的泰坦尼克,去撞现实的冰川; 要当烧赤壁的风,而非借鉴草船; 要为了一片海,就肯翻万山。 1429

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 569

Mybatis配置之<environments>配置元素详述

在这篇文章中,我们接着前文继续往下看其他的配置元素,今天的主角就是我们的元素,该元素用于对我们需要访问的数据库配置进行设置,我们先来看一下配置: 从上面看,我们知道下面可以配置多个元素节点,而每个节点我们可以配置两个东西,一个是事务管理器配置,另一个是数据源配置。 我们先从源码开始看起,看

马靖的个人技术博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MyBatis配置文件(七):environments配置

environments是用来配置数据库信息的,可以同时配置多个,但只能为每个SqlSessionFactory实例选择一个,如果未选择环境,那么默认的环境将被加载。

weixin_42762407的博客 1442

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Mybatis多环境数据源配置方式之environment标签

在部署项目的时候每次修改相关配置文件都比较麻烦,虽然项目基本信息配置已经可以由环境的不同而动态读取,但Mybatis一直不能,每次打war包的时候都需要修改相关密码。目前可以使用Mybatis的environment标签根据环境动态引入指定的dataSource,这样项目部署能更方便。 实现步聚如下:修改Mybatis配置文件 <environments default="development

简单-生活 5340

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Mybatis源码分析:环境设置Environment

Mybatis环境配置类Environment 在初始化Mybatis框架时,需要配置environment元素,该元素允许有多个,方便我们在不同环境下切换后端的存储。拥有一个id属性用于该环境,此id必须唯一,否则后续配置会覆盖前面的配置,该元素拥有两个子元素(事务管理器),(数据源),这两个元素后续会进行讲解,目前只需要记住名称即可。如下便是的相关配置,该配置定义了dev,test...

weixin_30709929的博客 364

MyBatis核心配置文件之environment

<!-- environments:配置多个连接数据库的环境 属性: default:设置默认使用的环境的id --> <environments default="development"> <!-- environment:配置某个具体的环境 属性: id:表示连接数据库的环境的唯一标识,不能重复

weixin_43899452的博客 1125

mybatis 源码系列(三) 配置之环境变量Environment

mybatis 源码系列(三) 配置之环境变量Environment 通过初始化的章节,我们知道了mybatis的核心配置类Configuration,那么,接下来我们逐一查看该配置的属性 简介 本章主要是查看Environment环境变量 在Configuration.java中 /** * @author Clinton Begin */ public class Configurati...

八一菜刀的专栏 1222

mybatis环境配置

先说一下实现基本的mybatis框架步骤: 1.首先导入依赖(jar包):我这里连接的是mysql,所以把mysql的依赖也导入进来: dependency> groupId>org.mybatisgroupId> artifactId>mybatisartifactId> version>3.4.5version> dependency> dependency>

desert568的博客 455

Mybatis的环境配置(environments)

环境配置environments 事务管理器(transactionManager) 数据源(dataSource) 环境配置environments 直接看官网Mybatis官网 官网也说废话:不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。 我们的连接例子: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configur..

林高禄 5681

Mybatis配置文件详解

Properties(属性) Java属性文件可以配置直观的。 如: &amp;amp;amp;amp;lt;properties&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;property name=&amp;amp;amp;quot;jdbc.driver&amp;amp;amp;quot; value=&amp;amp;amp;quot;com.mysql.jdbc.Driver&amp

莫颜道人 2万+

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 223

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 328

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 195
上一篇: 跟老杜从零入门MyBatis到架构思维(四)使用MyBatis完成CRUD- 下
下一篇: 跟老杜从零入门MyBatis到架构思维(六)MyBatis核心配置文件-transactionManager
Java摸鱼学习者
博客等级 码龄4年 2粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值