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的对象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、这个方法返回的是一个连接对象


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生产实习Day14 ---- 大语言模型(LLM)

文章目录 大语言模型什么是大语言模型?大语言模型的关键技术大语言模型的应用场景大语言模型面临的挑战*大语言模型的未来发展趋势大语言模型的应用前景 大语言模型 什么是大语言模型? 大语言模型是一种基于深度学习的自然语言处理 (NLP) 模型&#xff…

JaveEE进阶----Spring Web MVC入门

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是 Spring Web MVC??1.1MVC 定义1.2 什么是Spring MVC ?1.3过浏览器和用户程序交互 二、 RequestMapping 注解三、Postman 前言…

Vue67-Vuex简介

因为vuex是插件,所以,使用的时候:vue.use(插件名) 一、Vuex的意义和使用场景 红色的箭头,都是读数据。 若是,B、C、D都想修改A组件中的x数据(写):此时,A组件就是数据的接…

聚合大模型场景助力产业升级,WAIC 2024 容联云论坛即将开幕

前 言 Introduction 2024世界人工智能大会暨人工智能全球治理高级别会议(简称“WAIC 2024”)即将拉开帷幕,在世界人工智能大会组委会办公室的指导下,容联云将于7月6日主办容联云生成式应用与大模型商业化实践论坛。本次论坛还将获…

【Redis】哈希类型的常用命令以及使用场景

Redis 哈希是一种用于存储键值对的数据结构。在 Redis 哈希中,每个键(key)都关联着一个哈希表(hash)。这个哈希表包含了多个字段(field)和值(value)。哈希非常适合存储对…

Python武器库开发-武器库篇之SMB服务暴力破解(五十五)

Python武器库开发-武器库篇之SMB服务暴力破解(五十五) SMB服务(Server Message Block)是一种用于文件共享、打印机共享和其他资源共享的网络协议。它最初由IBM开发,后来被微软广泛采用。 SMB服务允许多台计算机在网络上共享文件和资源&…

Web前端项目-页面动态背景【附完整源码】

页面动态背景 一&#xff1a;花瓣背景 页面效果&#xff1a; HTML代码 <!DOCTYPE HTML> <HTML> <TITLE>花瓣漫舞</TITLE> <META NAME"Generator" CONTENT"EditPlus"> <META NAME"Author" CONTENT"&quo…

基于Sringboot+Vue的校园招聘系统【原创】【开源】

浏览器&#xff1a;Chrome或360浏览器 系统环境配置 前置条件&#xff1a;系统已经安装了Mysql5.7、Mysql工具&#xff08;Navicat&#xff09;、JDK1.8、Maven3.6.1、vue3.0以下开发环境、 Intellij Idea、 Chrome或360浏览器 1、导入数据库 2、编译前端代码vue 编译&…

编译xlnt开源库源码, 使用c++读写excel文件

编译xlnt开源库源码,在linux平台使用c读写excel文件 下载xnlt源码 官方网站https://tfussell.gitbooks.io/xlnt/content/ 下载地址https://github.com/tfussell/xlnt 下载libstudxml开源库源码 下载地址https://github.com/kamxgal/libstudxml 下载xnlt源码 官方网站https://…

CVE-2023-51048(sql注入)

简介 S-CMS v5.0 被发现存在SQLI。 过程 打开靶场&#xff0c;扫描目录&#xff0c;发现/admin后台登陆界面 弱口令admin/admin123登录 经过查看&#xff0c;发现账号管理功能&#xff0c;添加管理员账号存在sql注入&#xff0c;添加管理员&#xff0c;进行抓包 抓取数据如下…

2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Python)-C卷D卷-100分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是: 1.如果数小于节点的数减去500,则将数插入节点的左子树 2.如果数大于…

带NTC温度保护的5V升压至8.4V两节锂电池充电芯片

内容详情&#xff1a; 1&#xff0c; 两节锂电池充电芯片简单描述 2, 参考 PCB 设计和过 EMI 认证注意事项 3&#xff0c; 外围参考推荐芯片 4&#xff0c; 参考应用电路&#xff1a; 两节锂电池的充电/保护/放电的完整电路 5&#xff0c; 两节锂电池充电芯片 IC 目录 描述…

IT入门知识第六部分《后端开发》(6/10)

目录 后端开发&#xff1a;构建强大的服务端逻辑 1.引言 2.后端技术概述 2.1 数据库 2.2 服务器 2.3 API 2.4 安全性 3.服务器和API 3.1 服务器的作用 3.2 API的作用 4.后端框架 4.1 Node.js 4.1.1 特点 4.1.2 用途 4.1.3 代码案例分析 4.2 Django 4.2.1 特点 …

论文辅导 | 基于K-means聚类和ELM神经网络的养殖水质溶解氧预测

辅导文章 模型描述 1&#xff09;相似度统计量构造。数据归一化后&#xff0c;利用皮尔森相关系数确定环境因子权重&#xff0c;构造相似日的统计量&#xff0d;相似度。 2&#xff09;K-means 聚类。根据相似度应用 K-means 聚类法对历史日数据样本聚类&#xff0c;找出合适样…

Nginx负载均衡之Memcached缓存模块

Nginx 的 ngx_http_memcached_module 模块本身并没有提供缓存功能&#xff0c;它只是一个将用户请求转发到 Memcached 服务器的代理模块。 在以 Memcached 服务器为缓存应用的方案中&#xff0c;Memcached 作为内容缓存的存储服务器&#xff0c;用户通过 URL 为 Memcac…

python API自动化(Pytest+Excel+Allure完整框架集成+yaml入门+大量响应报文处理及加解密、签名处理)

1.pytest数据参数化 假设你需要测试一个登录功能&#xff0c;输入用户名和密码后验证登录结果。可以使用参数化实现多组输入数据的测试: 测试正确的用户名和密码登录成功 测试正确的用户名和错误的密码登录失败 测试错误的用户名和正确的密码登录失败 测试错误的用户名和密码登…

OceanBase 并行执行参数 parallel_servers_target 理解

为了最大程度降低 PX 使用难度&#xff0c;OceanBase 3.1 版起&#xff0c;parallel_max_servers 参数废弃。 用户只需用好 parallel_servers_target 即可。 target 的用途 用一个酒吧的例子来粗略理解下 parallel_servers_target 的意思&#xff1a; target 先生开了一个酒…

git 上拉下来的新项目web文件夹没有被idea管理,导致启动不了

让idea识别web项目&#xff0c;操作步骤&#xff1a; 1. 打开idea -- 文件 -- 项目结构&#xff1b; 2. 选择 模块 --- 添加 --- web -- 应用 --- 确定&#xff0c;就好了。 3. 文件夹中间出现个圆圈就是被识别到了。

刷代码随想录有感(110):动态规划——完全背包问题

题干&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std; int n, bagweight; void solve(){vector<int>dp(bagweight 1, 0);vector<int>weight(n, 0);vector<int>value(n, 0);for(int i 0; i < n; i){cin>>weight[…

计算机网络(9) TCP超时重传以及滑动窗口流量控制

一.确认机制与流量控制 引用&#xff1a;滑动窗口&#xff0c;TCP的流量控制机制 | 小菜学网络 确认机制 由于 IP 协议缺乏反馈机制&#xff0c;为保证可靠性&#xff0c;TCP 协议规定&#xff1a;当接收方收到一个数据后&#xff0c;必须回复 ACK 给发送方。这样发送方就能得…