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

news2024/12/22 0:25:12

(建议学完 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的对象Statement
        Statement 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.coloradmin.cn/o/1843578.html

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

相关文章

【代码随想录】【算法训练营】【第44天】 [322]零钱兑换 [279]完全平方数 [139]单词拆分

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 44,周四,坚持不住了~ 题目详情 [322] 零钱兑换 题目描述 322 零钱兑换 解题思路 前提: 思路: 重点: 代码实现 C语言 [279] 完全…

代码随想录算法训练营第29天(贪心)|455.分发饼干、376. 摆动序列、53. 最大子序和

455.分发饼干 题目链接:455.分发饼干 文档讲解:代码随想录 状态:so easy 思路:对胃口和饼干大小排序,小胃口对应小饼干,不满足的话用下一块饼干试探。 题解: public int findContentChildren(i…

自动化测试Robot FrameWork框架

一、简介 Robot FrameWork是完全基于Python实现的开源的自动化测试框架,RF已经封装好的各个模块,基于关键字驱动的形式来实现的自动化测试。其case采用表格形式易读,且支持BDD,可容纳各种外置库,可以继承Selenium、Ap…

【机器学习】基于稀疏识别方法的洛伦兹混沌系统预测

1. 引言 1.1. DNN模型的来由 从数据中识别非线性动态学意味着什么? 假设我们有时间序列数据,这些数据来自一个(非线性)动态学系统。 识别一个系统意味着基于数据推断该系统的控制方程。换句话说,就是找到动态系统方…

【etcd】etcd单机安装及简单操作

https://blog.csdn.net/Mr_XiMu/article/details/125026635 https://blog.csdn.net/m0_73192864/article/details/136509244 etcd在生产环境中一般为集群方式部署 etcd使用的2个默认端口号:2379和2380 2379:用于客户端通信(类似于sqlserver的1433&#x…

视频融合共享平台LntonCVS视频监控安防系统运用多视频协议建设智慧园区方案

智慧园区,作为现代化城市发展的重要组成部分,不仅推动了产业的升级转型,也成为了智慧城市建设的核心力量。随着产业园区之间的竞争日益激烈,如何打造一个功能完善、智能化程度高的智慧园区,已经成为了业界广泛关注的焦…

五十、openlayers官网示例JSTS Integration解析——使用JSTS 库来处理几何缓冲区并在地图上显示结果

官网demo地址: JSTS Integration 这篇讲了如何在地图上添加缓冲图形 什么叫做缓冲几何? 几何缓冲(Geometric Buffering)是指在 GIS(地理信息系统)和计算几何中,围绕一个几何对象创建一个具有…

时空预测 | 基于深度学习的碳排放时空预测模型

时空预测 模型描述 数据收集和准备:收集与碳排放相关的数据,包括历史碳排放数据、气象数据、人口密度数据等。确保数据的质量和完整性,并进行必要的数据清洗和预处理。 特征工程:根据问题的需求和领域知识,对数据进行…

Walrus:去中心化存储和DA协议,可以基于Sui构建L2和大型存储

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布,面向Sui开发者征求反馈意见,并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术,Walrus能够快速且稳健地将非结构化数…

5款堪称变态的AI神器,焊死在电脑上永不删除!

一 、AI视频合成工具——Runway: 第一款RunWay,你只需要轻轻一抹,视频中的元素就会被擦除,再来轻轻一抹,直接擦除,不喜欢这个人直接擦除,一点痕迹都看不出来。 除了视频擦除功能外,…

第一个Neety程序

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Netty ⛺️稳中求进&#xff0c;晒太阳 加入依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.39.F…

【Spine学习10】之 创建新骨骼时,自动绑定图片和插槽的快捷方式

两天没更新了。 遇到一些难解的难题 用的版本是破解版 不知道为啥现在的教程非常地快 明明有些细节很重要还略过讲 所以创建骨骼这里 基本创建是都会 可是骨骼一多 实际工作中的重命名也太麻烦了 。 这就需要学习快捷创建方式&#xff1a; <将对应图片自动绑定到新骨骼上并…

哔哩哔哩视频URL解析原理

哔哩哔哩视频URL解析原理 视频网址解析视频的原理通常涉及以下几个步骤&#xff1a; 1、获取视频页面源代码&#xff1a;通过HTTP请求获取视频所在网页的HTML源代码。这一步通常需要处理反爬虫机制&#xff0c;如验证码或用户登录。 2、解析页面源代码&#xff1a;分析HTML源代…

【上海交大】博士生年度进展报告模板

上海交通大学 博士生年度进展报告模板 比较不好找&#xff0c;在交我办中发起申请流程后才能看到链接&#xff0c;链接如下&#xff1a; https://www.gs.sjtu.edu.cn/xzzx/pygl/15

byte[]转MultipartFile、byte[]转File一次看个够

目录 需求背景 当你需要将byte[]、MultipartFile、File实现互转时&#xff0c;无外乎以下场景&#xff1a; 保存第三方接口返回二进制流前/后端文件流上传微服务间调用文件格式转换 正如你所需要的&#xff0c;通过搜索引擎筛选到我的本篇文章是因为你在开发中需要将byte[]转…

剑指offer 算法题(数组中重复的数据)

剑指offer 第一题 去力扣里测试算法 思路一&#xff1a; 排序后&#xff0c;前一个与后一个相比是否相同。 class Solution { public:vector<int> findDuplicates(vector<int>& nums) {sort(nums.begin(), nums.end());int n 0;int len nums.size();vect…

如何设计一个点赞系统

首先我们定义出一个点赞系统需要对外提供哪些接口&#xff1a; 1.用户对特定的消息进行点赞&#xff1b; 2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过&#xff1b; 3.用户查看自己给哪些消息点赞过&#xff1b; 这里假设每条消息都有一个message_id, 每一个用户都…

文件防篡改监控工具 - WGCLOUD全面介绍

WGCLOUD是一款优秀的运维监控软件&#xff0c;免费、轻量、高效&#xff0c;部署容易&#xff0c;上手简单&#xff0c;对新手非常友好 WGCLOUD部署完成后&#xff0c;点击菜单【文件防篡改】&#xff0c;可以看到如下页面 我们点击【添加】按钮&#xff0c;输入监控文件的信息…

python之Bible快速检索器

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! python之Bible快速检索器 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff01; 助力快…

【网络安全的神秘世界】已解决Failed to start proxy service on 127.0.0.1:8080

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 解决burpsuite无法在 127.0.0.1&#xff1a;8080 上启动代理服务端口被占用以及抓不到本地包的问题 Burpsuite无法启动proxy…