【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.进入游戏界面…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...