【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解)
前言:
🌟🌟本期讲解Java中JDBC编程,希望能帮到屏幕前的你。
🌈上期博客在这里:【MySQL】MySQL索引与事务的透析——(超详解)-CSDN博客
🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客
目录
📚️1.引言
📚️2.JDBC编程环境配置
2.1JDBC编程由来
2.2驱动包环境配置
1.进入中央仓库
2.搜索mysql
3.选择适配版本
4.点击jar,然后进行下载
5.找到下载的文件,并进行复制
6.进入idea,新建目录,并复制jar
7.将lib目录设置成库
📚️3.JDBC编程大致流程
3.1建立数据源
3.2和数据库服务器建立连接
3.3构造sql语句
3.4发送sql给服务器
3.5关闭连接释放资源
📚️4.实现增删查改
4.1插入数据
4.2删除操作
4.3修改数据
4.4查看数据
📚️5.总结
📚️1.引言
Hello啊家人们~~~ 小编上期讲解了关于MySQL中的索引与事务,相信大家对这部分数据库知识有了更进一步的了解,那么接下来,小编将详细讲解关于JDBC编程,以及如何安装环境,大家准备好了吗,发车咯~~~🥳🥳🥳;
且听小编讲解,包你学会!!!
📚️2.JDBC编程环境配置
2.1JDBC编程由来
在数据库编程中,要有数据库服务器提供一些API(应用程序编程接口)供程序员使用,但是我们之前介绍的各种数据库:Oracle MySQlL SQL server等等,这些提供的API都不相同,那么我们此时的学习成本就会变高;
此时JAVA就提供了一套规范的API,各个数据库提供的API都要和JAVA对接上,那么此时就有了JDBC编程,那么就需要一个类似于转换器一样的东西,来连接java和数据库两方,即MySQL驱动包~~~
2.2驱动包环境配置
要想在程序中操作MySQL,就需要MySQL驱动包,并将驱动包导入到项目中去;
1.进入中央仓库
在浏览器上搜索:中央仓库,或者网址:https://mvnrepository.com;
图片展示:

注意:如果进不去,那么就要使用watt toolkit进行网页加速;
2.搜索mysql
可以看到有以下两个驱动包:

注意:此时要使用第二个驱动包,并点击;
3.选择适配版本
点击驱动包后,要点击进入与你当前MySQL适配的版本,小编这里的MySQL版本是5.开头的,所以选择的驱动包版本也是要5开头的。
图片如下:

4.点击jar,然后进行下载

5.找到下载的文件,并进行复制

6.进入idea,新建目录,并复制jar

此时就将驱动包成功导入了;
7.将lib目录设置成库
鼠标指向lib并右击鼠标,找到add as library,并点击此时就可以开心写代码啦~~~;

📚️3.JDBC编程大致流程
首先我们要在数据库先建立一个表,这里小编就不再展示,如何建立了,前几期有讲;
3.1建立数据源
代码如下:
//建立数据源DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("642364");
这里的DataSource就是数据源,描述数据库服务器所在的位置,这里使用向下转型是为了低耦合,因为MysqlDataSource是来自于mysql的驱动包,但是每个数据库的驱动包是不一样的,防止在使用其他数据库时,要改很多bug;
注意:
在url代表的是网络资源位置,即给JDBC操作mysql使用的
127.0.0.1:代表的是IP地址,是一台主机在网络上的位置,这是一个特殊的地址即(回环IP),自己给自己发送信息;
java109:是小编在数据库中创建的库;
?characterEncoding=utf8&useSSL=false:问号是代表后面的的一系列参数,&是代表参数之间不同的分割符,useSSL代表否加密,一般为false;
找到服务器位置后,还要进行认证;
3.2和数据库服务器建立连接
代码如下:
//和数据库服务器建立连接 后序才有请求和响应交互Connection connection=dataSource.getConnection();
这里会抛出异常
处理异常:
public static void main(String[] args) throws SQLException {
注意:建立数据库服务器的连接之后才能进行进行请求——响应交互,这里还要处理编译时异常;
3.3构造sql语句
在前面准备工作做好之后,就能构造sql语句了;
代码如下:
String sql="insert into student values(1,'孙悟空') ";//进行预处理PreparedStatement statement=connection.prepareStatement(sql);
这里的sql语句其实和,mysql操作的代码方式是一样的;
注意:
sql语句下面代码,代表的是预处理,是为了检查sql语句是否有啥问题,解析完成后就会得到一个结构化数据,再将这个结构化数据给数据库服务器,这样服务就省下了解析这部分工作;
3.4发送sql给服务器
代码如下:
//把SQL发送给服务器int n=statement.executeUpdate();//影响的行数System.out.println("n="+n);
注意:这里用executeUpdate()方法使用于插入,删除,修改操作,这里的n代表的是sql执行影响的行数;
3.5关闭连接释放资源
代码如下:
//最后释放资源,最后获取的资源先释放statement.close();connection.close();
因为程序通过代码和数据库服务器建立连接是要消耗一定的硬盘/软件资源
注意:在写资源的释放时,先获取的资源后释放,后获取的资源后释放;
📚️4.实现增删查改
在上述的过程实现后,我们就要对这个模板进行修改;
4.1插入数据
在第3步构造sql语句时,写入插入数据的sql执行语句;
代码如下:
String sql="insert into student values(1,'孙悟空') ";
此时点击运行后得到n=1,代表此时影响的数据为一行;
此时在mysql中输入“select * from student”;这里的student是小编在数据库中建立的表;
mysql> select * from student;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 孙悟空 |
+------+-----------+
1 row in set (0.00 sec)
那么就可以看到此时,在表中我们已经在idea上写的插入的数据,那么我吗可以发现,如果这么写,就已经将代码写死了,那么我们就可以引入Scanner函数;
代码如下:
Scanner sc=new Scanner(System.in);System.out.println("输入id");int id=sc.nextInt();System.out.println("输入名字");String name=sc.next();.
.
.
String sql="insert into student values(?,?) ";
//进行预处理
PreparedStatement statement=connection.prepareStatement(sql);
statement.setInt(1,id);
statement.setString(2,name);
此时我们自主输入我们想要插入的数据时,就要通过statement中的函数setInt或者setString方法,
注意:
要根据插入的类型,编写出不同的方法;
在方法后的数字代表第几个问号,再后面就是列名(这里的问号代表占位符);
4.2删除操作
和插入操作基本一致,但是不用自己进行输入id等,所以就只修改sql语句即可;
代码如下:
String sql="delete from student where id=1
此时我们运行后,在次在mysql查询表;
mysql> select * from student;
Empty set (0.00 sec)
此时可以发现数据库表中的数据被删除了~~~
4.3修改数据
这里和上述的删除操作也差不多,都是修改sql执行语句就可以了;
我们在执行修改之前看一下mysql数据库中的表:
mysql> select * from student;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 孙悟空 |
| 1 | 孙悟空 |
| 1 | 孙悟空 |
| 1 | 孙悟空 |
+------+-----------+
此时我们在idea中进行修改操作
代码如下:
String sql="update student set name='猪八戒' where id=1";
那么现在我们再次打开数据库进行查看:
mysql> select * from student;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 猪八戒 |
| 1 | 猪八戒 |
| 1 | 猪八戒 |
| 1 | 猪八戒 |
+------+-----------+
4.4查看数据
注意这里的查看数据就和之前的就不一样了,且听小编进行分析一下;
我们在构造sql语句时,代码如下:
//构造sqlString sql="select * from student";PreparedStatement statement=connection.prepareStatement(sql);
此时的sql语句就不一样了
之后我们就不能使用:
int n=statement.executeUpdate();//影响的行数
来进行影响的行数,我们要重新使用另一个方法,来进行结果集合的遍历,那么如何拿到结果集合呢?此时就要用另一个方法;
//表示查询的结果集合,后面就根据其进行遍历
ResultSet resultSet=statement.executeQuery();
这样我们就拿到了结果集合,然后我们就要对其进行遍历,代码如下:
//进行遍历while (resultSet.next()){int id=resultSet.getInt("id");String name=resultSet.getString("name");System.out.println("id="+id+" "+"name="+name);}
注意:在遍历时通过结果集合进行遍历,整型就用getInt方法,而字符串就使用getString方法;最后进行输出打印即可;
最后进行资源释放:
//释放资源
resultSet.close();
statement.close();
connection.close();
测试:
我们先查看我们数据库的表中数据
mysql> select * from student;
+------+-----------+
| id | name |
+------+-----------+
| 1 | 猪八戒 |
| 1 | 猪八戒 |
| 1 | 猪八戒 |
| 1 | 猪八戒 |
+------+-----------+
在JAVA中进行查看数据,运行程序结果如下:
id=1 name=猪八戒
id=1 name=猪八戒
id=1 name=猪八戒
id=1 name=猪八戒Process finished with exit code 0
那么我们可以看到在JAVA中输出了我们表中的数据信息。
📚️5.总结
💬💬小编本期讲解了关于如何在JAVA中配置JDBC编程环境,和JAVA和MySQL数据库建立联系,JDBC编程的固定套路,最后通过数据库和idea的代码展示了如何操作表的增删查改~~~
代码地址在这里:JDBC: JDBC编程,csdn实例代码 (gitee.com)
🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!
💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。
😊😊 期待你的关注~~~
相关文章:
【MySQL】MySQL中JDBC编程——MySQL驱动包安装——(超详解)
前言: 🌟🌟本期讲解Java中JDBC编程,希望能帮到屏幕前的你。 🌈上期博客在这里:【MySQL】MySQL索引与事务的透析——(超详解)-CSDN博客 🌈感兴趣的小伙伴看一看小编主页&a…...
电脑安装OpenWRT系统
通过网盘分享的文件:OpenWRT 链接: https://pan.baidu.com/s/1nrRBeKgGviD31Omji480qA?pwd9900 提取码: 9900 下面开始教程: 1.先把普通U盘制作成一个PE启动盘,我用的是微PE工具箱,直接安装PE到U盘。 2.把写盘工具和openWRT系统…...
说说几款耳机
从前,大约在戴森推出他们那款奇特的发明——戴森耳机与空气净化器组合一年后,人们仍对这个奇怪的产品感到困惑。这款穿戴式空气净化耳机更像是一个实验,缺乏实际用途。回想起那时的评测,大家一致认为这是有史以来最无意义的产品之…...
Excel爬虫使用实例-百度热搜
原来excel也能爬虫抓取数据,而且简单好用 目标网址: https://top.baidu.com/board?tabrealtime 下面是一个excel爬虫的小小例子,爬取了百度热搜的前50(还有一个置顶的热搜没有1,2,3编号) 实现…...
arcgisPro地理配准
1、添加图像 2、在【影像】选项卡中,点击【地理配准】 3、 点击添加控制点 4、选择影像左上角格点,然后右击填入目标点的投影坐标 5、依次输入四个格角点的坐标 6、点击【变换】按钮,选择【一阶多项式(仿射)】变换 7…...
SpringBoot开发——获取HTTP请求头(Header)的三种方法
文章目录 方法一:使用HttpServletRequest实现原理方法二:使用RequestContextHolder实现原理方法三:使用RequestHeader注解实现原理总结 在Spring Boot应用中,获取HTTP请求头(Header)信息是常见的需求&#…...
大模型入门3:理解LLAMA
LLama在transformers库中的代码,以及各部分原理Llama3.1技术报告LLama 33b 微调尝试 Model a stack of DecoderBlocks(SelfAttention, FeedForward, and RMSNorm) decoder block 整体结构:最大的区别在pre-norm x -> norm(x) -> attention() -…...
React学习day07-ReactRouter-抽象路由模块、路由导航、路由导航传参、嵌套路由、默认二级路由的设置、两种路由模式
14、ReactRouter续 (2)抽象路由模块 1)新建page文件夹,存放组件 组件内容: 2)新建router文件夹,在其下创建实例 3)实例导入,使用 4)效果 (3&…...
Unity项目的脚本继承关系
1.Unity项目的脚本继承关系包括四层:自己的脚本、MonoBehaviour、Behaviour、Component、Object。 2.通过F12跳转可以查看各继承类中的方法和属性,如MonoBehaviour类中主要包括协程和相关API。 3.Component类中包含组件的只读属性、消息发送等API&…...
【自动驾驶】决策规划算法(一)决策规划仿真平台搭建 | Matlab + Prescan + Carsim 联合仿真基本操作
写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…...
grep 命令:文本搜索
一、grep 命令简介 grep 命令用于在文件中搜索指定模式的文本,并显示匹配的行。 二、grep 命令参数 匹配规则:可以是 普通字符 串或 正则表达式。 grep [选项] [匹配规则] [指定目录]常用选项: -i, --ignore-case&#…...
python画图|中秋到了,尝试画个月亮(球体画法)
学习了一段时间的画图,已经掌握了一些3D图的画法,部分链接如下: python画图|极坐标下的3D surface-CSDN博客 python画图|3D参数化图形输出-CSDN博客 我们今天尝试一下月亮的画法。 【1】官网教程 首先还是到达官网教程学习: …...
【网络安全的神秘世界】攻防环境搭建及漏洞原理学习
🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 Kali安装docker 安装教程 PHP攻防环境搭建 中间件 介于应用系统和系统软件之间的软件。 能为多种应用程序合作互通、资源…...
pythonnet python图像 C# .NET图像 互转
C#是dotnet的代表虽然不是一个东西但是在这里代表同一件事,不要在意细节。 pythonnet是 python 和.net无缝连接的桥梁。那么python的图像是numpy表示,C#图象是Bitmap。 做图像想要python的便利又想要dotnet的强大就需要图像类型转换。 上程序。 1.Bi…...
spring security OAuth2 搭建资源服务器以及授权服务器/jdbc/jwt两种方案
一、认证服务器基于jdbc方式 如果不懂请移步上一篇文章:Spring security OAuth2 授权服务器搭建-CSDN博客 在上一篇文章中,TokenStore的默认实现为 InHenoryTokenStore 即内存存储,对于 CLient 信息,userDetaitsServce 接负责从存…...
计算机视觉—3d点云数据基础
点云数据 3d点云数据由来 3d点云 3D Point Cloud是一种用于表示三维空间中对象或场景的数据结构。在最基础的形式中,它是一个包含多个三维坐标点(X, Y, Z)的集合。这些点是通过对实际物体或场景表面进行离散采样而获得的,因此&a…...
Matlab simulink建模与仿真 第十八章(Stateflow状态机)
参考视频:Simulink/stateflow的入门培训_哔哩哔哩_bilibili 一、概述 Stateflow是集成于Simulink中的图形化设计与开发工具,主要用于针对控制系统中的复杂控制逻辑进行建模与仿真,或者说,Stateflow适用于针对事件响应系统进行建模…...
Linux系统终端中文件权限的10位字符是什么意思
Linux操作系统终端长格式显示的文件 在Linux操作系统终端中用文件长格式命令ls -l显示文件,如上图。第一列10个字符表示的含义如下: drwxrwxrwx 第一个字符是表示该文件的类型,如红色d表示该文件是一个目录,详细内容可以参考我…...
Qt QSerialPort串口编程
文章目录 Qt QSerialPort串口编程Qt Serial Port模块简述1.QSerialPortInfo类1.1示例用法 2.QSerialPort类2.1设置串口参数2.2打开串口2.3数据读写2.4关闭串口 3.串口编程基本流程3.1 简单实例 Qt QSerialPort串口编程 Qt 框架的Qt Serial Port 模块提供了访问串口的基本功能&…...
扫雷游戏及其中的知识点
大家好呀,今天我们给大家讲解扫雷游戏如何用C语言制作,以及制作扫雷游戏中的一些C语言知识。 想到扫雷游戏,大家有什么想法吗?大家还记得扫雷游戏是什么样子的吗?我在网上找了一些扫雷游戏的图片给大家提供参考: 如图所示,扫雷游戏需要的元素有以下几个: 1.进入游戏界面…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

