【Spring+MyBatis+MySQL实战入门】三、MyBatis的4个基本配置介绍

PCL 使用RANSAC拟合平面【2026最新版】 RANSAC拟合平面算法原理和实现流程详解以及最大迭代次数和内点期望概率的设置方法。最后再对拟合后的平面法向量与向量(1,1,1)进行定向。博客长期更新,最近一次更新时间为:2026年4月24日。 阅读详情

本系列文章系本人原创,欢迎转载,转载请注明出处

在上一章中,我们介绍了要让程序能使用MyBatis来操作数据库,应该至少有4个最基本的需要写/配置的地方:Java Model,DAO,DAO和SQL的映射关系,以及MyBatis连接数据库的配置。我们还介绍了使用MyBatis Generator
来生成这4个配置中的前三个。在本章中,我们来逐一探讨这4个基本的配置。

一、Java Model

我们先以MyBatis Generator为我们自动生成的User类作为例子来看一下:
这里写图片描述

可以看到,这个User对象就是一个很简单的POJO类,提供了一些属性和getter/setter方法,仅此而已。
结合User表的定义:
这里写图片描述
我们可以发现,User类就是User表对应的实体类。

细心的读者可能会发现,MyBatis Generator除了帮我们生成了User类,还生成了一个UserExample类:
这里写图片描述
如果我们不用MyBatis Generator创建实体类,而是自己写实体类的话,这个UserExample类并不是必须的。那么这个UserExample类究竟是做什么的呢?我们看一下这个类里面定义的成员变量和方法不难发现,这个类可以帮助我们实现更发杂的查询(此处的“查询”不一定是select,如 ‘delete * from user where …’中的where子句指定了一个筛选条件,从某种意义上也算是“查询”)。结合后面会讲到的Mapper以及Mapper和Sql的映射关系,我们能更好的理解UserExample类的作用。

注:因为Example相关内容不是必须的,如果不想让MyBatis Generator生成相关内容,可以参考这里。

二、DAO (MyBatis中的Mapper)

常用的设计模式/框架中,经常会提到Data Access Object (DAO)的概念,它封装了具体与数据库(或其他数据存储机制)打交道的方法,使得上层Java代码即使对数据是如何存储的廖无所知也能方便的存取数据。MyBatis中的Mapper就可以理解为是一种DAO。我们仍以UserMapper举例:
这里写图片描述

可以看到以下几点:

  • UserMapper是一个接口
  • UserMapper这个接口中提供了常用的增删改查的功能
  • 接口中部分方法用到了之前提到过的UserExample类,这就是为什么我们之前说UserExample可以帮助我们实现复杂的“查询”功能。

讲到这里,善于思考的读者们可能会有疑问:UserMapper仅仅是一个接口,必须要有接口的实现类才能真正的实现方法的调用,但是MyBatis Generator并没有生成相应的实现类。这是个很好的问题,其答案就是我们接下来要讲的DAO(Mapper)和Sql之间的映射关系。

三、DAO(Mapper)和Sql之间的映射关系

在上一节中,我们留了一个问题:Mapper接口的实现在哪里?为了回答这个问题,我们来思考这样一个问题:Mapper接口的实现应该怎么写?
如果我们不用任何框架的话,最直接也是最简单的写法就是:新建一个类,实现Mapper接口,然后在该类的各方法中,使用JDBC(或其他工具)来执行该方法对应的Sql语句。这是一个最朴素的实现方法,可以说几乎任何框架都是在这个实现方法上加以包装,或提取出对Sql的依赖,或是自动生成相应的Sql等等。
通过回答这个问题,我们不难发现,无论实现方法是什么,其根本要解决的是Java形式的Mapper接口中定义的各方法到对应的Sql语句之间的映射关系。MyBatis针对这一问题的解决方案是:将映射关系保存在xml文件中(当然也可以以注解的方式保存在Java文件中,两种方法各有利弊。作为入门教程,我们在此只讨论xml形式的解决方案)。这样,映射关系就有了。有了接口,有了映射关系,MyBatis就能为我们生成代理类了,即我们在Java中调用Mapper接口中的方法时,MyBatis就可以自动的执行该方法对应的Sql语句。
至此,我们可以这么回答上一节留下的“Mapper接口的实现在哪里”这个问题了:我们将Mapper接口中各方法对应要执行的Sql语句保存在xml文件中,由MyBatis负责在调用接口时去执行相应的Sql语句,即我们告诉MyBatis要执行什么,而怎么执行则由MyBatis负责,对其内部实现逻辑,在大多数情况下我们无需关心。

这个表示映射关系的xml文件内容比较长,这里就不贴出来演示了,读者可以在这里获得源码。针对这个xml文件的写法,不是在一篇文章中就可以完全介绍完的,好在这个xml文件是MyBatis Generator自动生成的,在我们的入门教程中,这个自动生成的xml文件已经足够用了,没有必要再做修改。如果读者有兴趣的话,可以参考中文版官方文档。

四、MyBatis连接数据库的配置

上述三个配置都是在连接好数据库之后,Java与MyBatis交互时需要的配置。这第四个配置则是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>
    <properties resource="mybatis-config.properties" />
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/CartMapper.xml" />
        <mapper resource="mapper/ProductMapper.xml" />
        <mapper resource="mapper/UserMapper.xml" />
    </mappers>
</configuration>

其中用到的配置配件mybatis-config.properties:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/smm
username=root
password=root

这个简单的xml配置文件配置了MyBatis是如何连接数据库的:
首先,<properties resource="mybatis-config.properties" />定义了从mybatis-config.properties中读取属性。

其次,environments元素制定了默认的environment是id为“development”的environment。这里详细介绍下,实际情况中,针对不同的环境(生产环境,开发环境,测试环境等),可能会有不同的数据库配置,在environments中,我们就可以定义不同的environment来对应各环境,并在environment元素下定义各数据库相关的配置,这样就可以方便我们将代码(包)部署到不同的环境中。

最后,mappers元素里面定义MyBatis会读取哪些xml文件中的Mapper和Sql的映射关系。

这只是一个最简单的配置文件的实现,该配置文件的详细实现不是在一篇文章中可以介绍的完的。有兴趣的读者可以参考中文版官方文档。

开心消消乐 1)当点击一个1时,该1变被反转为0,同时相邻的上、下、左、右,以及左上、左下、右上、右下8个方向的1(如果存在1)均会自动反转为0;2)进一步地,一个位置上的1被反转为0时,与其相邻的8个方向的1(如果存在1)均会自动反转为0;上述样例中,四个角上的1均在中间的1的相邻8个方向上,因此只需要点击一次即可。给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。在上述4 * 4的矩阵中,只需要点击2次,即可将所有的1进行消除。接下来N行表示矩阵的初始值,每行均为M个数,取值范围[0,1] 阅读详情

相关推荐

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 222

SSM框架知识点整合及核心要点(三)--MyBatis 自动化生成&关联查询

MyBatis 自动化生成&关联查询 mybatis-generator-gui 代码自动生成插件。缺陷:没有多表操作.自动生成是针对互联网开发提出的.互联网开发 中多表操作很少. 类似 MyEclipse 中的一个逆向工程组件.根据数据库表格设计,自动生成实体类 型,Mapper/DAO 接口,有必要生成对应的实现类,相关的 Mapper/DAO 的配置文件。 MyBatis-generator : 是一个开发完善的 JavaSE 工程。主要实现方式,就是使用 JDBC/MyBatis 连接数据库

qq_33700236的博客 476

实测对比:DECIMER、Img2Mol、MolScribe,哪个化学结构识别工具更靠谱?

化学结构识别(CSR)工具的核心任务是将分子结构图像转换为SMILES(Simplified Molecular Input Line Entry System)表示。这一过程需要克服图像质量差异、绘制风格变化以及特殊基团识别等挑战。三款工具采用不同的技术路线:DECIMER:基于EfficientNetV2+Transformer架构,优势在于处理标准期刊文献中的分子图示Img2Mol。

weixin_32576389的博客 342

Mybatis 快速入门之 关联关系映射

Mybatis 中的简单关联关系映射讲解

qq_61313896的博客 2298

python cartopy绘制扇形区域图/cartopy绘制北极部分区域

实际上,这个问题原因还是由于投影转换的问题,在set_extend时,绘制的上下边界仍然是方形、未被正确投影的边界,与我们的set_boundary存在冲突,最根本的原因还是在于cartopy对于投影计算的一些缺陷。另外我们需要指出的是:**该方法不适用于极地投影,即NorthPolarStereo,由于NorthPolarStereo本身投影特性只需一个参数,本身并不适合。我们绘制极地投影时,同样也是使用set_boundary绘制圆形边界,那么当我们想要绘制扇形时,可以通过。请根据喜好自行选择,

weixin_43750300的博客 3212

TexGen模型导出到ABAQUS的inp文件:如何快速修改纱线材料属性(避坑指南)

本文针对TexGen模型导出到ABAQUS的inp文件后纱线材料属性缺失或错误的问题,提供了高效的解决方案。文章详细解析了inp文件结构,指导用户如何手动定位并修改纱线材料属性,并提供了可批量处理的Python脚本,帮助用户快速、精准地完成材料参数赋值,有效提升复合材料仿真工作效率。

ice55的博客 600

Mybatis之关联关系映射

一、一对多 二、多对多

m0_53151031的博客 1569

Delta并联机构运动学正逆解:从理论建模到Matlab实战

本文深入解析了Delta并联机构运动学正逆解的核心原理与实战方法。通过几何建模,清晰阐述了其“逆解简单、正解复杂”的特性,并详细推导了基于一元二次方程的逆解解析算法与采用牛顿-拉弗森迭代法的正解数值算法。文章结合完整的Matlab代码实例,从符号推导到数值求解,提供了从理论到实践的完整实现路径,助力机器人开发者掌握Delta并联机构的运动学分析。

weixin_29096377的博客 432

关联关系映射

1、 什么是关联关系? 关联关系是指类之间的引用关系,如果类A与类B关联,那么类A将被定义成类B的属性。 关联关系的分类:一对一,一对多,多对一,多对多 2. 配置mybatis关联映射步骤: 1.将数据表导入数据库中 2.通过mybatis-generator插件生成dao、mapper、model 1)配置mybatis-generator插件生成文件位置 2)修改generatorConfig.xml配置文件的生成目录(mapper和model)及对应生成关系 3.修改Cus...

m0_67596612的博客 1081

【异常】Cursor IDE 扩展主机超时错误处理文档The agent execution provider did not respond within 4 seconds.

该错误通常是 Cursor IDE 的临时性问题,不影响项目代码。大多数情况下,重新加载窗口或重启 IDE 即可解决。如果问题持续,可按上述进阶方案排查。重新加载窗口(最快)重启 IDE检查系统资源清理缓存检查扩展更多关于 AI+教育领域的干货,可以关注我的微信公众号第一时间获取哦~

奶爸的编程之路,也就一周冷个三天 2697

Opencv计算机视觉PPT-算法篇

01 02 03 04 05 06 07 08 09 010 011 012 013 014 015 016 017 018

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 203

新人一看就懂:Spring Boot+Spring mvc+Mybatis的基础框架demo

Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。后续我会陆续更新,微服务架构(Spring Boot、Spring Cloud)、分布式架构(Dobbo+Zookeeper)、大数据架构以及源码解析等相关的文章,感兴趣的话可以关注一下。

程序员云帆哥的博客 2万+

使用PostgreSQL构建高可用数据库集群

在现代企业级应用中,数据库的高可用性已成为业务连续性的核心要求。PostgreSQL作为一款功能强大的开源关系型数据库,其高可用架构的设计直接影响着系统的稳定性和可靠性。

九天的专栏 1257

SpringBoot入门实战(第三篇:MyBatis集成配置,自动生成代码配置)

SpringBoot入门实战(第三篇:MyBatis集成配置,自动生成代码配置)

感谢阅读 1827

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Spring Boot】MyBatis入门:连接Mysql数据库、测试单元、连接的常见错误

本文以MyBatis框架为核心,系统讲解了其作为持久层框架的核心价值与快速入门实践。首先介绍MyBatis专注于简化JDBC开发,通过映射机制实现数据库与Java对象的高效交互。随后通过Spring Boot项目实战演示:配置MyBatis与MySQL依赖、创建包含deleteFlag等字段的UserInfo实体类、编写Mapper接口并使用@Select注解实现数据查询。针对单元测试中出现的空指针问题,指出需添加@SpringBootTest注解以加载Spring上下文。

Code哈哈笑的博客 2175

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MyBatis初级实战之一:Spring Boot集成

引自官方:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2401_87254517的博客 1889

Camera2Demo

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

MyBatis配置以及连接mysql数据库

一、新建java web项目 Finish即可。 二、导入jar包 jar包下载地址:https://mvnrepository.com 导入MyBatis的jar包 spring的所有jar包下载地址:https://github.com/joytom/spring_jar spring+mybatis的jar包下载 mysql驱动下载 阿里巴巴数据库连接池jar包下载 以上j...

光头强的博客 1万+

Spring Boot + MyBatis + MySQL 入门与实战详解

本文系统地讲解了如何在 Spring Boot 项目中集成 MyBatis 框架,实现对 MySQL 数据库的高效读写操作。内容从 SQL 基础知识入手,涵盖数据库设计规范、常用 DDL/DML 语句、多表关联查询(如 INNER JOIN、LEFT JOIN)以及聚合函数等核心概念,为后续开发打下坚实基础。通过合理配置pom.xml和,完成数据库连接与 MyBatis 环境搭建;

a0fffff的博客 969

Mybatis入门及基本操作

Lombok是一个实用的Java类库,可以通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码。通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。注解作用为所有的属性提供get/set方法@ToString会给类自动生成易阅读的 toString 方法根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法@Data。

actavy的博客 1246

SpringMVC+Spring+mybatis+redis项目从零开始--Spring mybatis mysql配置实现

SSM项目-Spring mybatis mysql配置实现 上一章我们把SSM项目结构已搭建(SSM框架web项目从零开始--分布式项目结构搭建)完毕,本章将实现Spring,mybatis,mysql等相关配置。 1. 外部架包依赖引入 外部依赖包引入可以根据相关包名从 网站:http://mvnrepository.com/ 获取依赖引入语句结构。 SSM项目详细依赖包请见ssm-parent中的pom.xml文件。 1.1 spring框架依赖包引入 spring-context spr

if(true){ I love it } 1万+

Spring-MyBatis基本操作

MyBatis是一款优秀的持久层(Dao层)框架,用于简化JDBC的开发。MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到goole code,并且改名为MyBatis。2013年11月迁移到GitHub。MyBatis中文网持久层:指的是持久化操作的层,通常指的是操作数据的层(Dao层),用来操作数据库的。简单来说MyBatis是更简单完成程序与数据库交互的框架,也就是更简单的操作和读取数据库的工具。

weixin_52159554的博客 1181

Mybatis Plus + Spring 分包配置 ClickHouse 和 Mysql 双数据源

Mybatis Plus + Spring 分包配置 ClickHouse 和 Mysql 双数据源

ElendaLee的专栏 2620

【Spring+MyBatis+MySQL实战入门】一、MyBatis操作入门

本系列文章系本人原创,欢迎转载,转载请注明出处。 本系列文章从MyBatis+MySql开始,介绍MyBatis的使用,然后再深入到与Spring集成。适合对刚开始学MyBatis的初学者参考。系列文章中如有错误欢迎指出,以便大家共同进步。

import_java_any的博客 797

Spring Boot 2 升级 Spring Boot 3 踩坑实战:MyBatis-Plus、MySQL、Redis 迁移总结

文章摘要 Spring Boot 2升级到Spring Boot 3是一次涉及JDK、Spring框架和Jakarta EE的全方位迁移。升级路径建议先从Spring Boot 2.x升级到2.7.x,解决兼容性问题后再迁移到3.x。关键注意事项包括:JDK必须升级到17+;javax包名全面改为jakarta;MyBatis-Plus需使用专用starter(mybatis-plus-spring-boot3-starter);MySQL驱动坐标改为com.mysql:mysql-connector-j;

m0_60277481的博客 516

深入解析 Spring Boot 中 MyBatis 自动配置的流程

标记当前类为配置类,相当于。:启用自动配置机制。:自动扫描并加载指定包及其子包中的组件。这些注解共同作用,启动并配置 Spring Boot 应用。Spring Boot 启动注解启动了整个 Spring Boot 应用,触发机制。读取配置类从文件中读取 MyBatis 的自动配置类,并将其注入 Spring 容器。自动配置 MyBatis根据项目中的配置和依赖,自动配置 MyBatis 的核心组件。配置数据源:通过引入。

weixin_54574094的博客 3795

Spring Boot结合MyBatis读取MySQL数据的模块创建指南

本文介绍用 SpringBoot 与 MyBatis 构建读取 MySQL8.0 数据的项目。先概述 SpringBoot 的自动配置优势、MyBatis 的持久层特性,及 MySQL8.0 与 Navicat 工具的使用方法;再讲解 SQL 核心知识,含基础概念与 CURD 操作;最后通过实际项目演示模块创建、数据库配置、MyBatis 映射等完整开发流程,并给出接口测试方法。该方案融合 SpringBoot 的便捷性、MyBatis 的高效性与 Navicat 的可视化操作。

2501_93551961的博客 1057
上一篇: 【Spring+MyBatis+MySQL实战入门】二、MyBatis和MyBatis Generator的配置
下一篇: 如何让MyBatis Generator不生成Example相关内容
import_java_any
博客等级 码龄10年 15粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值