JDBC简介及快速入门-黑马(P1)

黑马视频b站链接:

01-JDBC简介&快速入门_哔哩哔哩_bilibili

🐶一、JDBC 简介

JDBC 概念:

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

  • 全称(Java DataBase Connectivity) Java 数据库连接

JDBC 本质:

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

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

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

  • 组成包:java.sql。*;javax.sql.*;这两个包都包含在了 JDK 中。

JDBC 好处:

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

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

🐶二、Idea 导入 Mysql8.0 驱动 jar 包

Idea 导入Mysql8.0驱动jar包-CSDN博客

🐶三、开发步骤

0. 创建一个 java 项目,导入 mysql 的数据库驱动 jar 包--驱动包

1. 注册驱动

//方法1-创建mysql的驱动对象
DriverManager.registerDriver(new Driver());//方法2-1. 注册驱动
Class.forName("com.mysql.jdbc.Driver");

2. 获取与数据库的链接

要创建一个数据库连接,您需要提供以下连接信息:

  • JDBC URL:用于标识数据库的地址,包括数据库的类型、主机名、端口号(如下示例端口号为 3306)和数据库名称(如下示例数据库名称为 doit46_day01)。JDBC URL 的格式因数据库而异,例如 MySQL 和 Oracle 的 JDBC URL 格式不同。

  • 用户名:连接数据库时使用的用户名。

  • 密码:连接数据库时使用的密码。

//使用驱动管理器,链接mysql
String url="jdbc:mysql://localhost:3306/doit46_day01?characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
String username="root";
String password="123456";
Connection conn= DriverManager.getConnection(url,username,password);

3. 定义 SQL 语句

String sql="insert into student values(7,'zs',703)";

4. 得到代表发送和执行 SQL 语句的对象 Statement

//可以使用链接对象,向mysql中传递sql语句
//传递sql语句有一个专门的对象来进行传递。
Statement state=conn.createStatement();

5. 执行语句

//开始执行sql
//返回值是该条sal影响了多少行数据
int num=state.executeUpdate(sql);
if(num!=0){System.out.println("添加成功");
}else{System.out.println("添加失败");
}

6. 如果执行的是查询语句,就会有结果集,处理

String sql="select * from Student";Statement statement=connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){int id=resultSet.getInt("sid");String name=resultSet.getString("sname");String rid=resultSet.getString("rid");System.out.println(id+"---"+name+"---"+rid);
}

7. 释放占用的资源

state.close();
conn.close();

Student 数据库

🧀代码实例1:

package test;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class testDemo06 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//1. 注册驱动Class.forName("com.mysql.jdbc.Driver");//使用驱动管理器,链接mysqlString url="jdbc:mysql://localhost:3306/doit46_day01?characterEncoding=utf-8&serverTimezone=Asia/Shanghai";String username="root";String password="123456";Connection conn= DriverManager.getConnection(url,username,password);//可以使用链接对象,向mysql中传递sql语句//传递sql语句有一个专门的对象来进行传递。Statement state=conn.createStatement();String sql="insert into student values(8,'zs',703)";//开始执行sql//返回值是该条sal影响了多少行数据int num=state.executeUpdate(sql);if(num!=0){System.out.println("添加成功");}else{System.out.println("添加失败");}state.close();conn.close();}
}

结果:

🧀实例代码2:

package test;import com.mysql.jdbc.Driver;import java.sql.*;public class TestDemo07 {public static void main(String[] args) throws SQLException {DriverManager.registerDriver(new Driver());String url="jdbc:mysql://localhost:3306/doit46_day01?characterEncoding=utf-8&serverTimezone=Asia/Shanghai";String username="root";String password="123456";Connection connection = DriverManager.getConnection(url, username, password);String sql="select * from Student";Statement statement=connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()){int id=resultSet.getInt("sid");String name=resultSet.getString("sname");String rid=resultSet.getString("rid");System.out.println(id+"---"+name+"---"+rid);}connection.close();statement.close();}
}

结果:

 

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

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

相关文章

React 笔记 jsx

严格约定:React 组件必须以大写字母开头,而 HTML 标签则必须是小写字母。 React JSX JSX 是由 React 推广的 JavaScript 语法扩展。 用于表达组件的 特殊语法的 js 函数 要求标签必须闭合;返回的组件必须包裹在一个父标签内; …

鸿蒙4.0开发笔记之ArkTS语法基础之数据传递与共享详细讲解(十八)

文章目录 一、路由数据传递(router)1、路由数据传递定义2、路由数据传递使用方法3、数据传递两个页面的效果 二、页面间数据共享(EntryAbility)1、定义2、实现案例3、避坑点 三、数据传递练习 一、路由数据传递(router…

分布式和微服务区别

1.分布式 微服务和分布式的区别 1.将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。 2.分布式是否属于微服务? 答案是肯定的。微服务的意…

动手制作个人电脑对话机器人transformers+DialoGPT

简介:DialoGPT是一个对话模型,由微软基于GPT-2训练。由于DialoGPT在对话数据上进行了预训练,所以它比原始的GPT-2更擅长生成类似对话的文本。DialoGPT的主要目标是生成自然且连贯的对话,而不是在所有情况下都提供事实上的正确答案…

Numpy数组的运算(第7讲)

Numpy数组的运算(第7讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ…

进制 + 原码,反码,补码

进制转换 整数部分 小数部分 原码 反码 补码 原码转补码: 左边和右边第一个1不变,中间取反。-0 除外。 计算机系统中数值一律用补码来存储的原因 其他 术语 进制表 进制数的表示 详细教程可转 爱编程的大丙

数学建模-数据新动能驱动中国经济增长的统计研究-基于数字产业化和产业数字化的经济贡献测度

数据新动能驱动中国经济增长的统计研究-基于数字产业化和产业数字化的经济贡献测度 整体求解过程概述(摘要) 伴随着数据要素化进程的不断加深,对于数据如何作用于经济发展,数据与其他要素结合产生的动能应该如何测度的研究愈发重要。本文将数据新动能分…

机器人刚性碰撞任务的阻抗控制性能

问题描述 对于机器人刚性碰撞任务,阻抗控制可以有效地提高机器人的适应性和稳定性。 在刚性碰撞任务中,机器人在接触外部物体时需要快速适应并调整自身的运动轨迹和速度,以实现精确的操控和稳定的交互。阻抗控制可以通过调整机器人的阻抗参…

【Flink系列五】Checkpoint及Barrier原理

本章内容 一致性检查点从检查点恢复状态检查点实现算法-barrier保存点Savepoint状态后端(state backend) 本文先设置一个前提,流处理的数据都是可回放的(可以理解成消费的kafka的数据) 一致性检查点(che…

深度学习之注意力机制

注意力机制与外部记忆 注意力机制与记忆增强网络是相辅相成的,神经网络去从内存中或者外部记忆中选出与当前输入相关的内容时需要注意力机制,而在注意力机制的很多应用场景中,我们的外部信息也可以看作是一个外部的记忆 这是一个阅读理解任务…

Nodejs安装使用,nvm对Nodejs和npm版本控制

Nodejs 安装 使用: npm 是Nodejs的内置 包管理工具 下载长期支持版本Node.js 中文网Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全…

在pytorch中自定义dataset读取数据

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 有关我们数据读取预训练 以及如何将它打包成一个一个batch输入我们的网络的 首先我们来看一下之前我们在讲resnet网络时所使用的源码 我们去使用了官方实现的image folder去读取我们的图像数据 然…

xilinx的XVC协议

文章目录 概述JTAG工作方式XVC协议 其他Debug Bridge IP 概述 JTAG工作方式 XVC协议 其他 Debug Bridge IP

设计模式基础——概述(1/2)

目录 一、设计模式的定义 二、设计模式的三大类别 三、设计模式的原则 四、主要设计模式目录 4.1 创建型模式(Creational Patterns) 4.2 结构型模式(Structural Patterns) 4.3 行为型模式(Behavioral Patterns&…

Vue脚手架 生命周期 组件化开发

Vue脚手架 & 生命周期 & 组件化开发 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔…

yolov8 pose coco2yolo

import os import json from tqdm import tqdm import argparseparser argparse.ArgumentParser() # 这里根据自己的json文件位置,换成自己的就行 parser.add_argument(--json_path,defaultrC:\Users\k167\Desktop\dataset\person_dataset/instances_val2017_perso…

MQTT协议对比TCP网络性能测试模拟弱网测试

MQTT正常外网压测数据---时延diff/ms如下图: MQTT弱网外网压测数据 TCP正常外网压测数据 TCP弱网外网压测数据 结论: 在弱网场景下,MQTT和TCP的网络性能表现会有所不同。下面是它们在弱网环境中的对比: 连接建立:M…

【代码随想录刷题】Day20 二叉树06

文章目录 1.【654】最大二叉树1.1 题目描述1.2 解题思路1.3 java代码实现1.4 总结 2.【617】合并二叉树2.1 题目描述2.2 解题思路2.3 java代码实现 3.【700】二叉搜索树中的搜索3.1 题目描述3.2 解题思路3.3 java代码实现 4.【98】验证二叉搜索树4.1 题目描述4.2 解题思路4.3 j…

盘点11月Sui生态发展,了解Sui的近期成长历程!

11月是Web3的“回暖期”,行业持续展现增长趋势。Sui紧随行业脚步,开展了一系列生态活动。其中历时一个多月的Quest 3游戏活动顺利结束并公布奖励,在多地区成功举办Move和Sui生态黑客松&交流会,还有针对中文社区开发者教育的星…

Axure原型图表组件库,数据可视化元件(Axure9大屏组件)

针对Axure制作的大屏图表元件库,帮助产品经理更高效地制作高保真图表原型,是产品经理必备元件工具。现分享完整的组件库,大家一起学习。 本组件库的图表模块,已包含所有常用的图表,以下为部分组件截图示意。文末可下载…