首页/新闻资讯/正文详情

MySQL与JDBC

发布时间:2026/9/27 22:38:49 来源:云帆数科 栏目:资讯中心
MySQL与JDBC
后端业务离不开数据持久化MySQL负责存储数据那么JDBC则是Java程序访问数据库的标准规范。学会MySQLJDBC才算真正把Java程序和数据库连接起来也是为后面学习MyBatis、MyBatis-Plus框架打好基础。在Java后端的学习路线中学完Java基础、IO、反射之后下一步就要接触数据库。我们在程序中产生的数据都存放在内存里可是程序一重启数据就会全部丢失。那么想要把数据永久保存下来就需要数据库来完成。MySQL存储数据JDBC使Java能够操作数据库。现在流行的MyBatis、MyBatis-Plus本质上只是对JDBC做了封装底层依旧是JDBC。想要理解ORM框架就一定要先把原生MySQLJDBC学明白。一、MySQLMySQL是一款开源的关系型数据库以表的形式存储数据。库下面有多张表表由行和列组成列代表字段行代表一条真实数据。1.基础SQL操作SQL是操作关系型数据库的语言主要就是增删改查CRUD。Create新增insertinto表名(字段1,字段2)values(值1,值2);Read查询select字段from表名where条件groupby分组orderby排序limit分页;Update修改update表名set字段值where条件;Delete删除deletefrom表名where条件;执行update、delete一定要加where条件否则会修改或者删除整张表全部数据2.表约束建表时用来保证数据合法性主键primarykey唯一标识每一条记录非空且唯一一般使用自增auto_increment非空notnull字段不能为null唯一unique字段值不能重复默认值default不给值的时候填充默认内容3.MySQL深入1索引可以提升查询速度索引就相当于书的目录。主键自带索引过多索引会降低增删改性能。2事务一组SQL语句要么全部执行成功要么全部失败回滚。具备ACID四大特性原子性、一致性、隔离性、持久性。3事务隔离级别解决脏读、不可重复读、幻读问题MySQL默认隔离级别是REPEATABLEREAD可重复读。4多表查询内连接、左连接、右连接实际业务大多不会做物理外键靠业务逻辑维护表关系。4.MySQL常见业务场景用户信息存储、订单数据、商品数据、业务各类数据持久化几乎所有后端系统都依赖MySQL存储业务数据。二、JDBC有了MySQL数据库我们可以在Navicat、命令行写SQL。但是程序运行的时候不可能人工手动执行SQL。这时候JDBC就是Java语言访问数据库的一套官方接口规范。JDBC只是接口真正干活的是数据库厂商提供的驱动mysql-connector-java。相当于一套标准MySQL厂商写实现类我们面向接口编程。1.JDBC核心API1DriverManager驱动管理类获取数据库连接Connection2Connection数据库连接对象Java程序和数据库之间的会话非常珍贵的资源3Statement/PreparedStatement执行SQL语句的对象Statement执行SQL存在SQL注入漏洞不推荐使用PreparedStatement预编译对象预编译SQL使用占位符解决SQL注入性能更好开发优先选择1ResultSet结果集封装select查询返回的数据通过游标读取每一行记录2资源关闭Connection、PreparedStatement、ResultSet都属于数据库资源必须关闭释放。JDK7可以使用try-with-resources自动关闭。2.JDBC标准执行流程1加载MySQL驱动2通过DriverManager获取Connection数据库连接url、用户名、密码3编写带?占位符的SQL语句4获取PreparedStatement预编译对象给?占位符赋值5执行SQL如果是查询调用executeQuery()返回ResultSet增删改调用executeUpdate()返回受影响行数6处理结果集ResultSet7关闭所有资源try-with-resources自动释放3.数据库连接池原生JDBC每次操作数据库都创建新连接用完就关闭。频繁创建销毁连接的开销非常大性能很差。数据库连接池就是提前创建一批连接放在池子里程序直接从池中拿连接使用完毕归还池子不进行销毁操作。常用Druid阿里企业最常用、HikariCPSpringBoot默认。实际开发中不会直接使用DriverManager获取连接全部使用连接池拿到Connection。4.JDBC易错点1忘记关闭资源数据库连接没有释放连接耗尽程序无法访问数据库。优先使用try-with-resources。2使用Statement拼接字符串产生SQL注入漏洞一定要使用PreparedStatement?占位符。3url地址写错、时区没有配置MySQL8需要指定时区serverTimezoneAsia/Shanghai。4ResultSet遍历顺序错误只能向下移动游标不能回退。三、MySQLJDBC和框架的关系JDBC写原生代码存在大量重复模板代码获取连接、赋值占位符、遍历ResultSet、关闭资源。所以MyBatis对JDBC做封装帮我们屏蔽重复代码只需要写SQL和实体映射但是底层仍然调用JDBC。

相关推荐

Excel全能王INDEX函数:从零基础到高手,这一篇就够了!
Excel全能王INDEX函数:从零基础到高手,这一篇就够了!

不再需要进行机械式的查找操作, 而是应当学会并掌握在数据世界中实现类似空间传送这种高效便捷的技术手段。假如说你过去曾经遭遇过, 因为没有办法去进行反向查找, 从而感到特别烦恼的情况, 也假如说你为了能够实现多个条件同时查询的效果, 而不得不去编写那些包含了一层层嵌套… · 2026/9/27 22:38:49

蓝牙芯片驱动开发-第9章第7题-设备树在Linux中的作用是什么
蓝牙芯片驱动开发-第9章第7题-设备树在Linux中的作用是什么

蓝牙面试题解析:设备树在 Linux 中的作用是什么? 难度:⭐⭐⭐ 中等 | 场景:社招一面/二面、Linux 嵌入式开发 | 高频:🔥🔥🔥🔥 标准答案 设备树(Device Tree)通过 硬件描述文件 → 内核解析 → 驱动匹配 将硬件配置从内核代码中分离,实现驱动与硬件解耦: ①… · 2026/9/27 22:38:49

Python中def函数的用法:从基础到进阶全面探索
Python中def函数的用法:从基础到进阶全面探索

在编程的世界里, 函数实际上就代表着一段可以被反复拿来使用的代码片段, 而大家如果想要去声明一个这样的东西的话, 那么就得用那个叫作def的关键字来进行界定, 这个标签#百度AI启航计划#也得一起保留着。通过调用函数, 我们能够以一种有效的方式来把代码组织起来和管理好, 而且… · 2026/9/27 22:38:43

旅游站用网页设计模板素材旅游怎么避开备案坑与性能优化
旅游站用网页设计模板素材旅游怎么避开备案坑与性能优化

旅游站用网页设计模板素材旅游怎么避开备案坑与性能优化 备案流程一头雾水,是不是让你对着工信部ICP备案系统后台的截图发呆,连第一步填什么都不知道?别慌,很多独立站长在搭建旅游类网站时,都栽在了这个“非技术”环节上,明明代码写得溜,却在资质审… · 2026/9/27 23:12:36

自己做电视视频网站吗详细步骤
自己做电视视频网站吗详细步骤

不会代码也能做视频站?3步搞定免费工具实操 自己不会代码想做网站,这确实是很多中小企业老板和技术小白最头疼的难题。以前做个视频站,动不动就要找外包,报价几万起步,改个按钮位置都要加钱,心里那个苦只有做过的人才懂。… · 2026/9/27 23:12:36

谢韦尔钢材缺陷检测数据集:6666张VOC+YOLO双格式实战指南
谢韦尔钢材缺陷检测数据集:6666张VOC+YOLO双格式实战指南

简介:本资源为谢韦尔钢材表面缺陷检测数据集,面向从事工业质检、缺陷识别与深度学习目标检测的开发者与研究人员,可用于训练和验证钢材表面缺陷检测模型。数据集同时提供Pascal VOC与YOLO两种标注格式,包含6666张jpg图片及一一对应… · 2026/9/27 23:12:17

H5录音源码实战:从getUserMedia到MediaRecorder的兼容性避坑指南
H5录音源码实战:从getUserMedia到MediaRecorder的兼容性避坑指南

简介:这是一套面向前端开发者的H5录音功能完整源码,基于JavaScript与HTML5标准实现,可跨PC端与移动端使用,适用于在线教育、会议记录、语音备忘等需要网页录音的场景。资源包共202个文件,约11.38MB,其中90个… · 2026/9/27 23:12:17

自贡市30m DEM数据处理全流程:从zip包到地形分析底图
自贡市30m DEM数据处理全流程:从zip包到地形分析底图

简介:这份资源是四川省自贡市30米分辨率的DEM数字高程数据包,面向地理信息系统学习者、测绘与城市规划从业者及高校师生,可用于地形分析、洪水模拟、地质灾害评估与地图制作等教学实践场景。压缩包共12个文件,约14.72MB&#xff0… · 2026/9/27 23:12:17

YOLOv5+U-Net工业仪表读数识别系统设计与落地实践
YOLOv5+U-Net工业仪表读数识别系统设计与落地实践

简介:本资源是一个面向毕业设计与课程设计的工业仪表读数识别系统实现方案,聚焦自动化产线中仪表指针图像的精准定位与数值解析,适用于深度学习初学者及计算机视觉方向实践者。项目融合YOLOv5目标检测与UNet图像分割双模型,通过端… · 2026/9/27 23:12:17

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码