MyBatis是什么?MyBatis-Plus是什么?
MyBatis是什么一款持久层 框架持久层是什么软件分层架构中负责实现数据持久化、专门与数据库交互的层级框架是什么一套封装了底层通用逻辑、提供统一开发规范的半成品程序开发人员在这套半成品程序上继续开发自己的功能综上所述持久层框架就是负责实现数据持久化的一套半成品程序即MyBatis就是负责实现数据持久化的一套半成品程序。MyBatis框架是怎么实现的封装JDBCJDBC是什么JDBCJava Database Connectivity是 Java 官方提供的一套访问数据库的标准 API用来让 Java 程序连接数据库、执行 SQL 并处理结果。执行流程Java程序--调用JDBC--数据库驱动--数据库--查询结果--Java程序每个数据库厂商都会提供自己的数据库驱动这些驱动都实现了JDBC定义的接口从而实现了使用一套API就可以连接不同的数据库核心思想SQL与代码分离SQL抽离到独立XML文件中对象关系映射自动把查询记录映射到实体类封装底层 JDBC 冗余操作开发者只关心 SQL 和业务实体不用手动管理数据库资源面向接口编程定义 Mapper 接口不用写实现类通过动态代理自动生成接口实现业务层直接调用接口方法工作流程① Controller│② Service│③ Mapper接口│④ MyBatis找到对应SQL│⑤ JDBC执行SQL│⑥ MySQL返回结果(ResultSet)│⑦ MyBatis封装对象│⑧ 返回Mapper│⑨ 返回Service│⑩ 返回Controller如何在SpringBoot项目中使用MyBatis项目结构springboot-mybatis-demo│├── controller│ UserController.java│├── service│ UserService.java│├── mapper│ UserMapper.java│├── entity│ User.java│├── resources│ mapper│ UserMapper.xml│ application.yml│└── SpringbootApplication.java1、数据库CREATE TABLE user( id INT PRIMARY KEY, name VARCHAR(50), age INT ); INSERT INTO user VALUES(1,Tom,18);2、添加依赖dependencies !-- Spring Boot Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- MyBatis-Plus -- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-spring-boot3-starter/artifactId version3.5.7/version /dependency !-- MySQL驱动 -- dependency groupIdcom.mysql/groupId artifactIdmysql-connector-j/artifactId /dependency !-- Lombok -- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency /dependencies3、配置文件application.ymlspring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.demo.entity4、实体类import lombok.Data; Data public class User { private Integer id; private String name; private Integer age; }实体类名 User 默认映射数据库表 user如果实体类名与数据库表名不一致的话可以使用TableName注解映射5、UserController.javaRestController RequestMapping(/user) public class UserController { Autowired private UserService userService; GetMapping(/{id}) public User getUser(PathVariable Integer id){ return userService.getUser(id); } }6、UserService.javaService public class UserService { Autowired private UserMapper userMapper; public User getUser(Integer id) { return userMapper.selectById(id); } }7、UserMapper.javaMapper public interface UserMapper { User selectById(Integer id); }8、UserMapper.xml?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.demo.mapper.UserMapper select idselectById resultTypecom.demo.entity.User select * from user where id #{id} /select /mapper注意namespacecom.demo.mapper.UserMapper必须对应Mapper接口idselectById必须对应接口的方法名9、启动类SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }MyBatis-Plus是什么MyBatis-Plus是基于MyBatis的一个增强框架最主要就是自动生成大量CRUD代码MyBatis-Plus完全兼容MyBatis如何在SpringBoot项目中使用MyBatis-Plus项目结构springboot-mybatisplus-demo│├── controller│ UserController.java│├── service│ UserService.java│├── mapper│ UserMapper.java│├── entity│ User.java│└── resources│ application.yml│└── SpringbootApplication.java对比mybatis的使用需要改动的地方有1、配置文件application.ymlspring: datasource: url: jdbc:mysql://localhost:3306/demo username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver2、UserMapper.javapackage com.example.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.entity.User; import org.apache.ibatis.annotations.Mapper; Mapper public interface UserMapper extends BaseMapperUser { }继承BaseMapper接口后就自动拥有了几十个方法比如insert()、deleteById()等3、不需要UserMapper.xml

相关新闻

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案

OfflineInsiderEnroll:Windows Insider计划的终极离线管理解决方案 【免费下载链接】offlineinsiderenroll OfflineInsiderEnroll - A script to enable access to the Windows Insider Program on machines not signed in with Microsoft Account 项目地址: http…

2026/7/5 5:13:35 阅读更多 →
Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具

Pearcleaner:彻底告别macOS应用残留,让Mac重获新生的免费开源工具 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经在macOS…

2026/7/5 5:11:35 阅读更多 →
本地部署AI知识库:Ollama+LobeChat+AnythingLLM私有化RAG方案实践

本地部署AI知识库:Ollama+LobeChat+AnythingLLM私有化RAG方案实践

1. 项目概述:为什么要在本地折腾一套AI知识库?最近和不少同行聊起AI应用落地,大家普遍有个痛点:公司内部那些敏感的业务文档、技术方案、客户资料,谁敢直接往ChatGPT的对话框里贴?数据安全和隐私合规的顾虑…

2026/7/5 5:11:35 阅读更多 →

最新新闻

抖音内容高效采集工具:如何用开源方案解决批量下载与管理的技术挑战

抖音内容高效采集工具:如何用开源方案解决批量下载与管理的技术挑战

抖音内容高效采集工具:如何用开源方案解决批量下载与管理的技术挑战 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…

2026/7/5 6:29:52 阅读更多 →
JMeter-Bzm-Plugins进阶指南:从安装部署到性能调优实战

JMeter-Bzm-Plugins进阶指南:从安装部署到性能调优实战

1. 项目概述:为什么Bzm-Plugins是JMeter进阶的必经之路如果你已经用了一段时间的JMeter,从录制几个简单的HTTP请求,到学会使用CSV参数化、正则表达式提取器,再到搭建分布式压测环境,你可能会觉得这个工具已经玩得差不多…

2026/7/5 6:27:51 阅读更多 →
包装线跨品牌通讯:EtherCAT 转 ProfiNet 网关实现 NJ501 读取 1734-AENT 计数与温度

包装线跨品牌通讯:EtherCAT 转 ProfiNet 网关实现 NJ501 读取 1734-AENT 计数与温度

一、项目背景与挑战某食品包装企业新建一条高速枕式包装生产线,用于糕点、面包等食品的自动化包装,产线要求稳定运行、数据实时采集、包装精度与效率同步提升。该生产线采用欧姆龙NJ501型EtherCAT主站PLC作为核心控制器,负责协调包装机、输送…

2026/7/5 6:25:51 阅读更多 →
本地AI智能体组合:Hermes与Codex打造自动化“赛博牛马”

本地AI智能体组合:Hermes与Codex打造自动化“赛博牛马”

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个关于 Hermes 和 Codex 的本地 AI 智能体组合方案。这个组合的核心目标,是打造一个能够长时间、自动化处理…

2026/7/5 6:19:50 阅读更多 →
FreeCAD源码分析: Selection Model

FreeCAD源码分析: Selection Model

本文从业务分析与逻辑推理出发,旨在研究FreeCAD中Selection Model的相关实现原理。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 一、概述 在图形交互系统中,“选择”通常是用户意图进入系统内部处理链路的第一个明确动作。对于 FreeCA…

2026/7/5 6:17:50 阅读更多 →
Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程

Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程

Beyond Compare 5永久激活终极指南:开源密钥生成器完整使用教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期而烦恼吗?当你正专注…

2026/7/5 6:15:50 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻