【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.进入游戏界面…...
用Python+OpenCV手把手实现Prewitt边缘检测(附完整代码与效果对比图)
用PythonOpenCV手把手实现Prewitt边缘检测(附完整代码与效果对比图) 边缘检测是计算机视觉中最基础也最关键的预处理步骤之一。想象一下,当你需要让计算机"看清"一张照片中的物体轮廓时,边缘检测算法就是它的"视觉…...
本地柴油发电机组排行2023年最新榜单
柴油发电机是通过燃烧柴油驱动发动机,进而发电的设备,广泛应用于电力中断或无电网地区。1. 柴油发电机的核心工作原理是什么?柴油发电机是一种将化学能转化为电能的设备,其核心是柴油发动机与交流发电机的组合。当柴油在发动机内燃…...
告别手写UI!用NXP GUI Guider拖拽设计LVGL界面,5分钟搞定音乐播放器Demo
嵌入式UI开发革命:5分钟用GUI Guider构建LVGL音乐播放器在嵌入式系统开发中,用户界面(UI)设计曾长期是工程师的痛点——既要考虑资源受限的硬件环境,又要实现流畅美观的交互体验。传统手动编写UI代码的方式不仅效率低下,调试过程更…...
终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南
终极免费方案:WandEnhancer完整解锁WeMod Pro功能快速指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否渴望享受WeMod Pro会员的所…...
【MySQL数据库 | 第一篇】 概述
数据库相关概念: 数据库(Database):数据库是指一组有组织的数据的集合,通过计算机程序进行管理和访问。数据库管理系统:操纵和管理数据库的大型软件SQL:操作关系型数据库的编程语言,定义了一套操作关系型数…...
ComfyUI-Manager完整指南:如何轻松管理你的AI工作流扩展库
ComfyUI-Manager完整指南:如何轻松管理你的AI工作流扩展库 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various c…...
【数据结构与算法】数据结构基础——栈和队列
目录栈和队列1. 栈1.1 栈的概念1.2 栈的实现方式分析1.3 栈的实现1.3.1 栈的初始化与销毁1.3.2 入栈与出栈1.3.3 栈的判空与有效元素个数1.3.4 栈顶元素1.4 栈的扩展1.4.1 两栈共享空间2. 队列2.1 队列的概念2.2 队列的实现方式分析2.3 队列的实现2.3.1 队列的初始化与销毁2.3.…...
ComfyUI-Manager完全指南:掌握AI工作流管理的核心技术
ComfyUI-Manager完全指南:掌握AI工作流管理的核心技术 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…...
基于CNN的食双星光变曲线自动化参数初估模型EBOP MAVEN
1. 项目概述与核心价值在恒星天体物理领域,食双星系统一直扮演着“宇宙实验室”的关键角色。通过分析两颗恒星相互绕转时周期性相互遮挡产生的光变曲线,我们可以像解谜一样,精确反演出恒星的质量、半径、轨道倾角等基本物理参数。这些参数是构…...
Claude Code + LM Studio + CC-Switch 本地自动化编程部署指南
Claude Code LM Studio CC-Switch 本地自动化编程部署指南 本指南汇总了在 Windows 本地环境下,使用 Claude Code 配合 LM Studio 本地模型、CC-Switch 代理进行自动化编程开发的完整配置方案。 目录 硬件与模型选型LM Studio 本地模型部署CC-Switch 代理配置Cla…...

