JDBC魔法:连接MySQL数据库与数据操作的秘籍
文章目录
- 一. JDBC介绍
- 二. 数据库驱动
- 1.DriverManager
- 2.Connection
- 3.PreparedStatement
- 4.ResultSet
- 三. JDBC连接MySQL
- 1. 加载驱动
- 2. 获得连接
- 3. 关闭连接
- 四. JDBC实现数据新增
- 五. JDBC实现数据删除
一. JDBC介绍
-
JDBC(Java Database Connectivity)是Java平台的标准API,用于执行SQL语句并与数据库进行交互。
-
JDBC为Java应用程序提供了访问各种数据库系统的统一接口,使得开发人员可以编写与数据库无关的应用程序。
-
在JDBC出现之前,每个数据库厂商都有自己的API和连接方式,这导致开发人员需要为不同的数据库编写不同的代码。
-
JDBC的出现解决了这一问题,通过提供一个标准的API,使得Java应用程序可以轻松地连接和操作不同类型的数据库。
二. 数据库驱动
JDBC通过数据库驱动程序来实现与特定数据库的通信。
每个数据库厂商通常会提供一个JDBC驱动程序,该驱动程序实现了JDBC API,使得Java应用程序可以通过JDBC接口与数据库进行交互。常见的数据库驱动程序包括(需要在编辑器中导入对应的jar包):
1.DriverManager
DriverManager 类是JDBC的核心类之一,用于管理和注册驱动程序,并建立数据库连接。
getConnection(String url, String user, String password)
: 获取数据库连接。
2.Connection
表示与数据库的连接。通过 Connection 对象,可以创建 PreparedStatement 对象,用于执行所对应的SQL语句。
3.PreparedStatement
用于执行预编译的SQL语句,可以提高性能并防止SQL注入攻击。
4.ResultSet
表示查询结果集,提供了遍历和检索结果的方法。常用的方法包括:
-
next()
: 移动到下一个记录。 -
getString(int columnIndex)
: 获取指定列的字符串值。 -
getInt(int columnIndex)
: 获取指定列的整数值。
三. JDBC连接MySQL
1. 加载驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
2. 获得连接
public static Connection getCon() {
Connection con=null;
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?
serverTimezone=GMT","用户名","密码");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
3. 关闭连接
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (con ≠ null)
con.close();
if (ps ≠ null)
ps.close();
if (rs ≠ null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
四. JDBC实现数据新增
public class Book {
private int id;
private String title;
private double price;
private String description;
}
public int add(Book b) {
try {
con=DBHelper.getCon();
String sql="insert into book(title,price,description)"
+ " values(?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, b.getPrice());
ps.setString(2, b.getAuthor());
ps.setString(3, b.getDescription);
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
五. JDBC实现数据删除
public int del(Integer id) {
try {
con=DBHelper.getCon();
String sql="delete from book where id=?";
ps=con.prepareStatement(sql);
ps.setInt(1, id);
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
相关文章:
JDBC魔法:连接MySQL数据库与数据操作的秘籍
文章目录 一. JDBC介绍二. 数据库驱动1.DriverManager2.Connection3.PreparedStatement4.ResultSet 三. JDBC连接MySQL1. 加载驱动2. 获得连接3. 关闭连接 四. JDBC实现数据新增五. JDBC实现数据删除 一. JDBC介绍 JDBC(Java Database Connectivity)是Ja…...
深入了解Scratch:引导初学者开启编程之旅
引言 在当今数字化时代,编程已不再是成年人的专利,而是一项逐渐向低年龄段普及的技能。Scratch作为一款面向儿童和青少年的图形化编程语言,以其简单易用且充满趣味性的特点,成为了许多初学者学习编程的首选工具。本文将深入探讨S…...
js复制内容到剪切板
复制内容到剪切板 最近预报一个需求需要点击按钮复制当前到行的内容到剪切板, 所以写了这个工具 export function copyText(text: string, prompt: string | null 已成功复制到剪切板!) {if (navigator.clipboard) {return navigator.clipboard.writeText(text).th…...
代码 RNN原理及手写复现
29、PyTorch RNN的原理及其手写复现_哔哩哔哩_bilibili 笔记连接: https://pan.baidu.com/s/1_Sm7ptEiJtTTq3vQWgOTNg?pwd2rei 提取码: 2rei import torch import torch.nn as nn bs,T2,3 # 批大小,输入序列长度 input_size,hidden_size 2,3 # 输入特征大小&a…...
企业官网的在线客服,如何提高效果?
企业官网的在线客服,如何提高效果? 作者:开源呼叫中心系统 FreeIPCC,github地址:https://github.com/lihaiya/freeipcc 提高企业官网在线客服的效果,是提升客户体验、增强客户满意度和忠诚度的关键。一个…...

「实战应用」如何可视化 DHTMLX Scheduler 中的资源工作量?
DHTMLX Scheduler是一个全面的 UI 组件,用于处理面向业务的 Web 应用程序中复杂的调度和任务管理需求。但是,某些场景可能需要自定义解决方案。例如,如果项目的资源(即劳动力)有限,则需要确保以更高的精度分…...

论文阅读《BEVFormer》
BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers 目录 摘要1 介绍2 相关工作2.1 基于Transformer的2D感知 摘要 3D视觉感知任务对于自动驾驶系统至关重要,包括基于多相机图像的3D检测和地图分割。…...
sql专题 之 sql的执行顺序
文章目录 sql的执行顺序sql语句的格式实际的执行顺序:虚拟表 vs 数据集虚拟表 结果集总结嵌套查询在sql查询中的执行顺序 前文我们了解了sql常用的语句,这次我们对于这些语句来个小思索 戳这里→ sql专题 之 常用命令 sql的执行顺序 SQL语句的执行顺序是…...

Vue3 -- 基于Vue3+TS+Vite项目【项目搭建及初始化】
兼容性注意: Vite 需要 Node.js 版本 18+ 或 20+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。【摘抄自vite官网】 这里我用的node版本是 v18.20.2 创建项目: 创建项目我们可以使用npm、yarn、pnpm、bun …...
CTF-RE: TEA系列解密脚本
// // Created by A5rZ on 2024/10/26. //#ifndef WORK_TEA_H #define WORK_TEA_H#endif //WORK_TEA_H#include <cstdint> #include <cstdio>// 定义TEA加密算法的轮次,一般建议为32轮 #define TEA_ROUNDS 32 #define DELTA 0x9e3779b9// TEA加密函数 v…...

信号量和线程池
1.信号量 POSIX信号量,用与同步操作,达到无冲突的访问共享资源目的,POSIX信号量可以用于线程间同步 初始化信号量 #include <semaphore.h> int sem_init(sem_t *sem, int pshared, unsigned int value); sem:指向sem_t类…...

【人工智能】10分钟解读-深入浅出大语言模型(LLM)——从ChatGPT到未来AI的演进
文章目录 一、前言二、GPT模型的发展历程2.1 自然语言处理的局限2.2 机器学习的崛起2.3 深度学习的兴起2.3.1 神经网络的训练2.3.2 神经网络面临的挑战 2.4 Transformer的革命性突破2.4.1 Transformer的核心组成2.4.2 Transformer的优势 2.5 GPT模型的诞生与发展2.5.1 GPT的核心…...

「QT」几何数据类 之 QPointF 浮点型点类
✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

可能是全网第一个MySQL Workbench插件编写技巧
引言 应公司要求,数据库的敏感数据在写入到数据库中要进行加密,但是在测试环境查询数据的时候要手动解密,很不方便,有的时候数据比较多,解密比较麻烦。遂研究了一下如何通过 MySQL Workbench 的插件来实现查询数据一键…...

D62【python 接口自动化学习】- python基础之数据库
day62 SQL 基础 学习日期:20241108 学习目标:MySQL数据库-- 131 SQL基础和DDL 学习笔记: SQL的概述 SQL语言的分类 SQL的语法特征 DDL - 库管理 DDL - 表管理 总结 SQL是结构化查询语言,用于操作数据库,通用于绝大…...
探索美赛:从准备到挑战的详细指南
前言 美国大学生数学建模竞赛(MCM/ICM),简称“美赛”,是全球规模最大的数学建模竞赛之一。它鼓励参赛者通过数学建模来解决现实世界中的复杂问题,广受世界各地大学生的欢迎。本文将详细介绍美赛的全过程,从…...
IP地址查询——IP归属地离线库
自从网络监管部门将现实IP地址列入监管条例,IP地址的离线库变成网络企业发展业务的不可或缺的一部分,那么IP地址离线库是什么,又能够给我们带来什么呢? 什么是IP地址离线库? IP地址离线库是IP地址服务商将通过各种合…...

“倒时差”用英语怎么说?生活英语口语学习柯桥外语培训
“倒时差”用英语怎么说? “倒时差”,这个让无数旅人闻之色变的词汇,在英语中对应的正是“Jet Lag”。"Jet" 指的是喷气式飞机,而 "lag" 指的是落后或延迟。这个短语形象地描述了当人们乘坐喷气式飞机快速穿…...

Linux入门攻坚——37、Linux防火墙-iptables-3
私网地址访问公网地址的问题,请求时,目标地址是公网地址,可以在公网路由器中进行路由,但是响应报文的目的地址是私网地址,此时在公网路由器上就会出现问题。公网地址访问私网地址的问题,需要先访问一个公网…...
微服务架构面试内容整理-安全性-Spring Security
Spring Security 是 Spring 框架中用于实现认证和授权的安全模块,它提供了全面的安全解决方案,可以帮助开发者保护 Web 应用、微服务和 API 免受常见的安全攻击。以下是 Spring Security 的主要特点、工作原理和使用场景: 主要特点 1. 身份认证与授权: 提供多种认证方式,…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...