MyBatis 配置一篇详解
本文详细讲解MyBatis 的配置文件通常是mybatis-config.xml是核心配置入口用于全局配置数据库连接、插件、映射器等。以下是主要配置项及其用法1. 配置文件结构概览?xml version1.0 encodingUTF-8 ?!DOCTYPEconfigurationPUBLIC-//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtdconfiguration!-- 环境配置 --environmentsdefaultdevelopmentenvironmentiddevelopmenttransactionManagertypeJDBC/dataSourcetypePOOLEDpropertynamedrivervalue${driver}/propertynameurlvalue${url}/propertynameusernamevalue${username}/propertynamepasswordvalue${password}//dataSource/environment/environments!-- 类型别名 --typeAliasestypeAliastypecom.example.UseraliasUser//typeAliases!-- 插件 --pluginsplugininterceptorcom.example.MyInterceptor//plugins!-- 对象工厂 --objectFactorytypecom.example.MyObjectFactory/!-- 映射器 --mappersmapperresourcecom/example/UserMapper.xml/mapperclasscom.example.BlogMapper//mappers/configuration2. 核心配置项详解2.1properties标签作用外部化配置如数据库连接信息支持 properties 文件或 Java 属性。用法propertiesresourcedb.propertiespropertynameusernamevaluedev_user/propertynamepasswordvaluedev_password//properties说明resource/url引入外部 properties 文件。优先使用外部文件的属性重复属性以配置文件中的为准。2.2settings标签作用全局参数配置控制 MyBatis 行为。常用配置settingssettingnamecacheEnabledvaluetrue/!-- 开启二级缓存 --settingnamelazyLoadingEnabledvaluetrue/!-- 开启延迟加载 --settingnamemultipleResultSetsEnabledvaluetrue/!-- 允许多结果集 --settingnameuseColumnLabelvaluetrue/!-- 使用列标签而非列名 --settingnamelogImplvalueSLF4J/!-- 日志实现 --settingnamemapUnderscoreToCamelCasevaluetrue/!-- 开启驼峰命名映射 --/settings2.3typeAliases标签作用简化类名引用避免全限定名。用法!-- 单个别名 --typeAliastypecom.example.UseraliasUser/!-- 包扫描自动取类名小写作为别名 --packagenamecom.example.entity/内置别名int→java.lang.Integerstring→java.lang.Stringdate→java.util.Date2.4typeHandlers标签作用自定义类型与 JDBC 类型的转换逻辑。用法!-- 注册自定义类型处理器 --typeHandlerstypeHandlerhandlercom.example.DateTypeHandler/packagenamecom.example.handler/!-- 包扫描 --/typeHandlers2.5objectFactory标签作用自定义对象创建逻辑如注入依赖。用法objectFactorytypecom.example.MyObjectFactorypropertynamesomePropertyvalue100//objectFactory2.6plugins标签作用拦截执行器的方法如 SQL 执行、参数处理。用法pluginsplugininterceptorcom.example.ExamplePluginpropertynamesomePropertyvalue100//plugin/plugins可拦截的方法Executor如update、queryParameterHandler如getParameterObjectResultSetHandler如handleResultSetsStatementHandler如prepare2.7environments标签作用配置多环境开发、测试、生产的数据库连接。用法environmentsdefaultdevelopmentenvironmentiddevelopmenttransactionManagertypeJDBC/dataSourcetypePOOLEDpropertynamedrivervalue${driver}/propertynameurlvalue${url}/propertynameusernamevalue${username}/propertynamepasswordvalue${password}//dataSource/environment/environments说明transactionManager类型JDBC原生、MANAGED容器管理。dataSource类型UNPOOLED非池化、POOLED池化、JNDI容器资源。2.8databaseIdProvider标签作用支持多数据库方言如 MySQL、Oracle。用法databaseIdProvidertypeDB_VENDORpropertynameMySQLvaluemysql/propertynameOraclevalueoracle//databaseIdProviderSQL 映射中使用selectidselectUserresultTypeUserdatabaseIdmysqlSELECT * FROM user WHERE id #{id}/select2.9mappers标签作用注册 SQL 映射文件或接口。注册方式!-- 资源路径 --mapperresourcecom/example/UserMapper.xml/!-- 接口类路径 --mapperclasscom.example.UserMapper/!-- 包扫描 --packagenamecom.example.mapper/3. 配置加载方式3.1 Java 代码加载配置文件InputStreaminputStreamResources.getResourceAsStream(mybatis-config.xml);SqlSessionFactorysqlSessionFactorynewSqlSessionFactoryBuilder().build(inputStream);3.2 Spring 集成配置ConfigurationpublicclassMyBatisConfig{BeanpublicSqlSessionFactorysqlSessionFactory(DataSourcedataSource)throwsException{SqlSessionFactoryBeanfactoryBeannewSqlSessionFactoryBean();factoryBean.setDataSource(dataSource);factoryBean.setConfigLocation(newClassPathResource(mybatis-config.xml));returnfactoryBean.getObject();}}4. 注意事项配置优先级Java 代码参数 配置文件参数 默认值。SQL 映射文件路径XML 文件需与接口类在相同包路径或通过package扫描。插件顺序plugins中配置的拦截器按顺序执行。数据源配置生产环境建议使用第三方连接池如 HikariCP、Druid。5. 高级配置示例5.1 自定义插件分页插件Intercepts({Signature(typeExecutor.class,methodquery,args{MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class})})publicclassPageInterceptorimplementsInterceptor{OverridepublicObjectintercept(Invocationinvocation)throwsThrowable{// 分页逻辑实现returninvocation.proceed();}}5.2 多环境配置environmentsdefaultprodenvironmentiddevtransactionManagertypeJDBC/dataSourcetypePOOLEDpropertynamedrivervaluecom.mysql.cj.jdbc.Driver/propertynameurlvaluejdbc:mysql://localhost:3306/dev_db/propertynameusernamevaluedev/propertynamepasswordvaluedev123//dataSource/environmentenvironmentidprodtransactionManagertypeJDBC/dataSourcetypePOOLEDpropertynamedrivervaluecom.mysql.cj.jdbc.Driver/propertynameurlvaluejdbc:mysql://prod-server:3306/prod_db/propertynameusernamevalueprod/propertynamepasswordvalueprod123//dataSource/environment/environments

相关新闻

2026六盘水黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026六盘水黄金回收白银回收铂金回收市民首选无隐形扣费正规备案回收门店联系方式推荐

2026六盘水黄金白银铂金回收实测榜单|公安工商双备案无损测金无折旧费门店 在六盘水,贵金属回收店铺遍地丛生,行业套路层出不穷,不少市民变现遭遇虚高报价、克扣损耗、未经同意熔金压价等问题。为帮助本地居民规避消费陷阱&#x…

2026/8/1 21:13:09阅读更多 →
2025年最新 默语佬 简介:默语佬 是谁?

2025年最新 默语佬 简介:默语佬 是谁?

2025年最新 默语佬 简介 👤 关于默语佬 默语佬,本名闫文超,是一位融合“技术实力内容影响力”的科技创作者。默语佬不仅是一名AI全栈开发工程师,更是拥有20万全网粉丝的知名科技自媒体博主。 他还是: CSDN COC 北京城市…

2026/8/1 21:13:09阅读更多 →
如何高效管理游戏存档:Unreal Engine存档编辑终极解决方案

如何高效管理游戏存档:Unreal Engine存档编辑终极解决方案

如何高效管理游戏存档:Unreal Engine存档编辑终极解决方案 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave 还在为游戏存档损坏而烦恼?珍贵的游戏…

2026/8/1 21:13:09阅读更多 →
Lance湖仓格式:如何用2行代码实现100倍性能提升的AI数据管理方案

Lance湖仓格式:如何用2行代码实现100倍性能提升的AI数据管理方案

Lance湖仓格式:如何用2行代码实现100倍性能提升的AI数据管理方案 【免费下载链接】lance Open Lakehouse Format for Multimodal AI. Convert from Parquet in 2 lines of code for 100x faster random access, vector index, and data versioning. Compatible with…

2026/8/1 22:21:33阅读更多 →
华硕笔记本性能控制新选择:G-Helper如何重塑你的使用体验

华硕笔记本性能控制新选择:G-Helper如何重塑你的使用体验

华硕笔记本性能控制新选择:G-Helper如何重塑你的使用体验 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook,…

2026/8/1 22:21:33阅读更多 →
跨平台流媒体下载利器:N_m3u8DL-RE如何破解DASH/HLS/MSS下载难题

跨平台流媒体下载利器:N_m3u8DL-RE如何破解DASH/HLS/MSS下载难题

跨平台流媒体下载利器:N_m3u8DL-RE如何破解DASH/HLS/MSS下载难题 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3…

2026/8/1 22:21:33阅读更多 →
跨境运维IP封禁问题溯源与解决方案:基于QTphone的底层防护技术解析

跨境运维IP封禁问题溯源与解决方案:基于QTphone的底层防护技术解析

在跨境多账号矩阵自动化运维场景中,IP节点封禁、网络环境异常是制约系统稳定运行的核心技术难题。本文从IP封禁核心技术诱因出发,分析公共节点、环境关联、特征溯源三大风控漏洞,详解QTphone针对IP封禁的全维度底层解决方案,为跨境…

2026/8/1 22:21:33阅读更多 →
成都就业现状与产业发展

成都就业现状与产业发展

来源链接:https://www.bilibili.com/video/BV1rw4m1m7zw/视频发布时间:2024-04-141. 成都就业现状就业市场特点: 成都的就业市场以销售类、客户服务类岗位为主。根据58同城数据,成都的销售类岗位需求位居全国第一。客服类岗位需求…

2026/8/1 22:21:33阅读更多 →
AI Agent白手起家14: DeepSeek全模型矩阵与部署实战指南

AI Agent白手起家14: DeepSeek全模型矩阵与部署实战指南

纲要 DeepSeek 模型家族全景图 从 1.5B 到 671B 的完整产品线各模型的定位与适用场景特殊变体:Coder、Math、Voice 模型部署必知的基础概念 知识蒸馏:学霸教出好成绩量化:高清转标清的平衡艺术裁剪:给模型做减法精度:…

2026/8/1 22:19:33阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/8/1 21:54:49阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/8/1 21:14:15阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →