JDBC(简介、入门与IDEA中导入MySQL的驱动)

(建议学完 MySQL 的基础部分)

JDBC——简而言之:用 Java 语言操作数据库。

Java DataBase Connectivity(Java 语言连接数据库)


目录

一、引言

(1)基本介绍

(2)JDBC 简介

1、JDBC 概念

2、详细介绍

3、JDBC 的本质

二、JDBC 快速入门

(1)用 Java 代码操作对应的 MySQL 数据库的基本流程

(2)基本步骤 

0、创建工程,并导入对应的驱动 " jar 包 "。

1、注册导入的驱动。

2、获取连接。

3、定义 SQL 语句。

4、获取执行的 SQL 对象。

5、执行 SQL。

6、处理返回结果。

7、释放资源

(3)进入 IDEA 进行实操(准备阶段)

1、首先先创建一个新的空工程。

2、然后再给这个空的工程进行一些配置。

​编辑

3、接着创建一个新的模块(语言选 JAVA 的)

4、创建完模块之后,要导入 MySQL 的驱动 " jar 包"。

5、开始创建一个类

(4)进入 IDEA 进行实操(开始代码编写阶段) 

1、该类的全部代码(代码注释解释了很多,流程与上面同步)

2、注意


一、引言

(1)基本介绍

1、JDBC 就是使用 Java 语言操作关系型数据库的一套 API

以下就是 JDBC 的一个示例代码:

注意:(现在这部分代码我们大致可以认识一些东西)

1、用户名、密码。

2、基本的 SQL 语句。(上面的 UPDATE 修改语句)通过这串代码,将SQL语句发送给MySQL 数据库,然后 MySQL 数据库执行SQL,就可以看到数据表里面的修改。

(2)JDBC 简介
1、JDBC 概念
  • JDBC 就是使用 Java 语言操作关系型数据库的一套 API
  • 全称:( Java DataBase Connectivity ) Java 数据库连接
2、详细介绍

当我们写 Java 代码, 就要涉及到操作关系型数据库。

一般的情况同一套Java代码,不能去操作不同的关系型数据库。

1、但是为了实现这样的需求,就诞生了一个 JDBC。它定义了一套操作所有的关系数据库的规则,就可以实现同一套 Java 代码操作不同的数据库。(其实就是定义了一套接口)

2、然而,JDBC 它只是定义了接口,没有实现类。实现类是各个数据库去给自己定义的。

3、如果以后听到需要弄一个 MySQL 的驱动,其实就是搞一个 MySQL 对应 JDBC 的实现类。搞一个 " jar 包 " ,它里面有很多的实现类,拿过来直接用就行。

3、JDBC 的本质

1、官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。

2、各个数据库厂商去实现这套接口,提供数据库驱动jar包。

3、我们可以使用这套接口 ( JDBC ) 编程,真正执行的代码是驱动 jar 包中的实现类

4、这样做的好处就是可以:

同一套代码,可以操作不同的关系型数据库

  • 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发。

(可以做到数据库灵活的切换)

  • 可随时替换底层数据库,访问数据库的Java代码基本不变。

(基于接口编程)所以就要把对应的关系数据库的对应的 "jar包" 导入到工程里去就好了。

二、JDBC 快速入门

(1)用 Java 代码操作对应的 MySQL 数据库的基本流程

(2)基本步骤 
0、创建工程,并导入对应的驱动 " jar 包 "

1、注册导入的驱动。
  • Class.forName("com.mysql.jdbc.Driver");

Class.forName...(将一个类加载到内存)

2、获取连接。

为了以后的通过 Java 代码发送 SQL 语句给 MySQL 服务器,所以得之间连接起来。

  • Connection conn = DriverManager.getConnection(url, username,password);

(连接对象:Connection)

3、定义 SQL 语句。
  • String sql = " update... " ;

(要求把 SQL 语句编写好。)

4、获取执行的 SQL 对象。
  • Statement stmtI conn.createStatement();

(执行 SQL 语句之前,需要获取 SQL 对象。)

5、执行 SQL。
  • stmt.executeUpdate(sql);

(其实就是通过前面获取到的 SQL 对象,把这个 SQL 语句发送给数据库,让这个数据库去执行相关的数据操作)

6、处理返回结果。

Java 代码获得 MySQL 的返回结果,再去进行处理。)

7、释放资源

(整个过程做完之后,就要释放调资源。)

(3)进入 IDEA 进行实操(准备阶段)
1、首先先创建一个新的空工程

2、然后再给这个空的工程进行一些配置。

(这边建议 JDK 配置成1.8 的,那么编译的版本也要调成 8 版本)

  • 如果是老版的 IDEA:

  • 现在作者本人的是新版的

3、接着创建一个新的模块(语言选 JAVA 的)

(项目模块的工程名:jdbc-demo)

现在就是整个创建后的结构,这样就可以在里面写代码了。

4、创建完模块之后,要导入 MySQL 的驱动 " jar 包"。

(通常我们的 " jar 包" 会单独存放在一个目录下面 )

我们会在模块上去 new 一个 Directory(目录)。在这里面存放 " jar 包"。

我们可要去 MySQL 官网去寻找自己想要的 " jar 包"。

MySQL 下载对应 jar包的地址icon-default.png?t=N7T8https://downloads.mysql.com/archives/c-j/

这里我为了自学的视频相对应,我选择下载的版本是:5.1.48

(下好之后把它复制放到之前创建的目录下:lib

复制完之后,还没有成功。要让这个创建好的工程去识别这个" jar 包"

首先先右键这个" jar 包"。(添加为库)


然后我们的驱动" jar 包"和工程都已经弄好了。

5、开始创建一个类

(在里面去完成之前的所有流程)

(4)进入 IDEA 进行实操(开始代码编写阶段) 
1、该类的全部代码(代码注释解释了很多,流程与上面同步)
package com.feisi.jdbc;import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/*** @Title: JDBCDemo* @Author HeYouLong* @Package com.feisi.jdbc* @Date 2024/6/20 下午9:18* @description: JDBC入门*/
public class JDBCDemo {public static void main(String[] args) throws Exception {  //因为后面会有很多个异常,直接抛出最大的//1、注册驱动Class.forName("com.mysql.jdbc.Driver");//记住固定写法//jdbc:mysql: 后面写 mysql对应的ip端口和数据库名词//127.0.0.1(localhost) mydb:所连接的数据库名称String url = "jdbc:mysql://127.0.0.1:3306/mydb";//将来写自己对应的就行String username = "root";String password = "1234";//2.获取连接 (这个类有一个静态方法)Connection conn = DriverManager.getConnection(url,username,password);//3.定义SQL语句//如:update ... set ... where ...String sql = "";//4.获取执行sql的对象StatementStatement stmt = conn.createStatement();//5.执行sql,方法参数传入sql语句就行了//这个方法返回的是 数据库表中受影响的行数int count=stmt.executeUpdate(sql);//6.处理结果System.out.println(count);//7.释放资源//这一块有两个地方需要释放:conn 与 stmt//释放顺序是:先开后放stmt.close();conn.close();}
}
2、注意

1、IDEA 有提示,很方便。

2、这个方法返回的是一个连接对象


这篇博客的内容就到这里。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[信号与系统]傅里叶变换、卷积定理、和为什么时域的卷积等于频域相乘。

前言 最近学习以下IIR滤波器和FIR滤波器 前置 1. 时域和频域 时域和频域代表着频率和时间与振幅的一一对应关系 2. 卷积运算 关于卷积的定义,详情请看 这篇文章能让你明白卷积 卷积运算是一种数学运算,广泛应用于信号处理、图像处理、控制系统和概…

【ARMv8/v9 GIC 系列 2 -- GIC SPI 中断的 enable和 disable 配置】

文章目录 GIC 中断 Enable 和 DisableGICD_ISENABLER<n>GICD_ICENABLER<n>参数 n使用举例代码实现注意事项 GIC 中断 Enable 和 Disable 在ARMv8架构中&#xff0c;通用中断控制器&#xff08;GIC&#xff09;负责管理处理器的中断。为了控制和管理这些中断&#…

网络安全管理组织架构复习

文章目录 安全管理机构岗位设置安全要求要求解读 安全管理机构 安全管理的重要实施条件就是有一个统一指挥、协调有序、组织有力的安全管理机构,这是网络安全管理得以实施、推广的基础。 通过构建从单位最高管理层到执行层及具体业务运营层的组织体系&#xff0c;可以明确各个…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十四)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 22 节&#xff09; P22《21.ArkUI-实现摇杆功能》 本节我们将小鱼动画案例中的按钮控制改为摇杆控制&#xff0c;用来熟悉和巩固…

【多模态论文】CLIP(Contrastive Language-Image Pre-training)

论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision 链接&#xff1a;https://arxiv.org/abs/2103.00020 摘要 问题&#xff1a; 对预定的类别进行预测&#xff0c;这种有监督的训练形式受限于额外标记数据 。如何利用图像的原始文本来获…

图像数字化基础

一、像素 1、获取图像指定位置的像素 import cv2 image cv2.imread("E:\\images\\2.png") px image[291,218] print("坐标(291,218)上的像素的BGR值是&#xff1a;",px) &#xff08;1&#xff09;RGB色彩空间 R通道&#xff1a;红色通道 G通道&…

RH850---注意问题积累--1

硬件规格(引脚分配&#xff0c;内存映射&#xff0c;外设功能规格、电气特性、时序图)和操作说明 注意:有关使用的详细信息&#xff0c;请参阅应用说明 ---------外围函数。。。 1:存储指令完成与后续同步指令的一代 当控制寄存器被存储指令更新时&#xff0c;从存储的执行开始…

南京邮电大学计算机网络实验二(网络路由器配置RIP协议)

文章目录 一、 实验目的和要求二、 实验环境(实验设备)三、 实验步骤四、实验小结&#xff08;包括问题和解决方法、心得体会、意见与建议等&#xff09;五、报告资源 一、 实验目的和要求 掌握思科路由器的运行过程&#xff0c;掌握思科路由器的硬件连线与接口&#xff0c;掌…

VBA学习(13):获取多层文件夹内文件名并建立超链接

代码使用了FileSystemObject对象和递归的方法实现文件夹和文件的遍历功能。分别将文件夹名称和文件名提取在表格的A/B列&#xff0c;并对文件名创建了超链接。 示例代码如下&#xff1a; Sub AutoAddLink()Dim strFldPath As StringWith Application.FileDialog(msoFileDialog…

如何下载DVS Gesture数据集?解决tonic.datasets.DVSGesture错误HTTP Error 403: Forbidden

1 问题 DVSGesture数据集是一个专注于动态视觉传感&#xff08;Dynamic Vision Sensor, DVS&#xff09;技术的数据集&#xff0c;它包含了基于事件的图像记录&#xff0c;用于手势识别任务。DVSGesture数据集由一系列动态图像组成&#xff0c;这些图像是通过动态视觉传感器捕…

抖音矩阵系统搭建,AI剪辑短视频,一键管理矩阵账号

目录 前言&#xff1a; 一、抖音矩阵系统有哪些功能&#xff1f; 1.AI智能文案 2.多平台账号授权 3.多种剪辑模式 4. 矩阵一键发布&#xff0c;智能发布 5.抖音爆店码功能 6.私信实时互动 7.去水印及外链 二、抖音矩阵系统可以解决哪些问题&#xff1f; 总结&#xff…

理解HTTP请求格式

HTTP概念 HTTP全称HyperTextTransfer Protocol(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议&#xff1b;HTTP是一个客户端&#xff08;用户&#xff09;和服务端&#xff08;网站&#xff09;之间请求和响应的标准。 HTTP 协议是以 ASCII 码传输&…

Gobject tutorial 八

The GObject base class Object memory management Gobject的内存管理相关的API很复杂&#xff0c;但其目标是提供一个基于引用计数的灵活的内存管理模式。 下面我们来介绍一下&#xff0c;与管理引用计数相关的函数。 Reference Count 函数g_object_ref和g_object_unref的…

怎么将几段音频合并在一起,试试这几个音频拼接小妙招

怎么将多个音频合并在一起呢&#xff1f;音频是我们日常工作生活中常见的文件&#xff0c;音频与我们息息相关&#xff0c;无论你是音乐爱好者&#xff0c;还是喜欢记录生活中的声音&#xff0c;都离不开音频。因此我们会遇到关于很多音频剪辑的难题&#xff0c;就像今天小编给…

usb摄像头应用编程

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

conda install xformers -c xformers/label/dev 的安装问题

在StableSR项目框架中&#xff0c;需要执行 conda install xformers -c xformers/label/dev 但是报错&#xff0c;错误显示&#xff0c;版本不匹配&#xff0c;如下所示&#xff1a; 我改用pip来安装&#xff0c;好像就不报错了&#xff1a; pip install xformers

javaWeb项目-ssm+vue企业台账管理平台功能介绍

本项目源码&#xff1a;javaweb项目ssm-vue企业台账管理平台源码-说明文档资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboo…

vue项目——前端CryptoJS加密、解密

1、vue项目需要安装CryptoJS安装包 npm install crypto-js 2、在项目中引入CryptoJS import CryptoJS from crypto-js 3、使用&#xff0c;代码如下 // 此处key为16进制let key jiajiajiajiajiajiajiajia;console.log(密钥&#xff1a;, key);// key格式化处理key Crypt…

【前端开发工具】VS Code安装和使用

文章目录 一、前言二、下载三、安装四、配置五、使用5.1 导入项目5.2 本地运行项目5.3 修改界面文案&#xff0c;验证效果5.4 添加日志打印5.5 代码调试5.6 代码提交到Git仓库 六、总结 一、前言 本文介绍一下在前端vue项目中&#xff0c;VS Code的安装和配置。 什么是VS Code…

【干货分享】25地学考研推免夏令营汇总表

​ 25考研学子们&#xff0c;考研准备要赶早。 小编给大家整合准备了25地信考研夏令营时间信息表&#xff0c;需要的宝子收藏起来。 ​ 话不多说&#xff0c;需要的小伙伴直接评论区留言 25地信考研择校信息表&#xff1a;