JDBC使用步骤-小白入门

一.JDBC开发流程

  1. 加载并注册JDBC驱动
  2. 创建数据库连接
  3. 创建Statement对象
  4. 遍历查询结果
  5. 关闭连接,释放资源
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class StandardJDBCSample {public static void main(String[] args) {Connection conn = null;try {
//        1. 加载并注册JDBC驱动Class.forName("com.mysql.cj.jdbc.Driver");
//        2. 创建数据库连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root", "zsj123");
//        3. 创建Statement对象Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select * from employee where dname='研发部'");
//        4. 遍历查询结果while (rs.next()) {Integer eno = rs.getInt(1);String ename = rs.getString("ename");float salary = rs.getFloat("salary");String dname = rs.getString("dname");System.out.println(dname + "-" + eno + "-" + ename + "-" + salary);}}catch (Exception e){e.printStackTrace();}finally {try {if (conn != null && conn.isClosed() == false) {//        5. 关闭连接,释放资源conn.close();}}catch (Exception ex){ex.printStackTrace();}}}
}

运行结果:

研发部-3308-张三-6000.0
研发部-3420-李四-8700.0

1.使用JDBC第一步:注冊驱动有三种方式:

  • Class.forName(“com.mysql.jdbc.Driver”);
    ​ 推荐这样的方式,不会对详细的驱动类产生依赖
  • DriverManager.registerDriver(com.mysql.jdbc.Driver);
    ​ 会对详细的驱动类产生依赖
  • System.setProperty(“jdbc.drivers”, “driver1:driver2”);
    ​ 尽管不会对详细的驱动类产生依赖;但注冊不太方便。所以非常少使用

2.使用JDBC第二步:建立连接
通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。
建立Connection接口类对象:
Connection conn = DriverManager.getConnection(url, user, password);
当中URL的格式要求为:
JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“

3.使用JDBC第三步:创建运行对象
运行对象Statement负责运行SQL语句。由Connection对象产生。
Statement接口类还派生出两个接口类PreparedStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据访问功能。
创建Statement的语法为:
Statement st = conn.createStatement();

4.使用JDBC第四步:运行SQL语句
运行对象Statement提供两个经常使用的方法来运行SQL语句。

  • executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
    如:ResultSet rs =st.executeQuery(sql);
  • executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
    如:int flag = st.executeUpdate(sql);

5.使用JDBC第五步:处理运行结果
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标:就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。

6.使用JDBC 第六步——释放资源
Connection对象的close方法用于关闭连接,并释放和连接相关的资源。

二.JDBC驱动的秘密

1.如何获取JDBC驱动Jar

在百度中输入mysql driver
在这里插入图片描述
下载链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将下载好的包放到lib包内:
在这里插入图片描述

2.创建数据库连接代码

String dbDriver = "com.mysql.cj.jdbc.Driver"; //JDBC驱动类 
String dbURL = "jdbc:mysql://localhost:3306/imooc" ; //连接字符串 
String dbUsername = "root"; //数据库用户名 
String dbPassword = "123456"; //数据库密码 
//1.加载并初始化JDBC驱动 
Class.forName(dbDriver); 
//2.创建数据库连接 
Connection connection = DriverManager.getConnection(dbURL, dbUsername, dbPassword);

3.Class.forName的作用

  • Class.forName用于加载指定的JDBC驱动类
  • Class.forName本质是通知JDBC注册这个驱动类
  • 驱动由数据库厂商自行开发,连接字符串也不同

4.数据库与连接字符串

在这里插入图片描述

5.DriverManager 设备管理器

  • DriverManager用于注册/管理JDBC驱动程序
  • DriverManager.getConnection(连接字符串,用户名,密码)
  • 返回值Connection对象,对应数据库的物理网络连接

6.Connection对象

  • Connection对象用于JDBC与数据库的网络通信对象
  • java.sql.Connection是一个接口,具体由驱动厂商实现
  • 所有数据库的操作都建立在Connection基础上
    在这里插入图片描述

7.MySQL连接字符串

  • 格式: jdbc:mysql://[主机ip][:端口]/数据库名?参数列表
  • 主机ip与端口是可选设置,默认值为127.0.0.1与3306
  • 参数列表采用url编码,格式:参数1=值1&参数2=值2&…

8.MySQL连接字符串常用参数

在这里插入图片描述

Statement:使用从此接口创建的对象将SQL语句提交到数据库。除了执行存储过程之外,一些派生接口还接受参数。
ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一
个迭代器,允许我们移动其数据。
9.连接数据库的常见问题

  • ClassNotFoundException - 类未找到异常
    在这里插入图片描述

原因:有可能这个jar包驱动没有加入到工程中

  • Connection refuse - 数据库连接被拒绝异常
    在这里插入图片描述

原因:ID环境或端口号配置没有配置好,远程连接连不上,服务器的防火墙把3306端口给屏蔽了,必须在防火墙上将3306端口放行。

  • Access denied for user - 用户名与密码错误异常
    原因:密码或用户名没写对
    在这里插入图片描述

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

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

相关文章

opencv进阶 ——(七)图像处理之寸照换背景

寸照换背景,通常指的是将个人证件照片的背景色更换为另一种颜色,如白色、蓝色或红色等,以满足不同用途的要求。例如,护照照片通常要求白色背景,而身份证照片可能需要蓝色背景。这个过程通常涉及到图像处理技术&#xf…

【国产中颖】SH79F9202U单片机驱动LCD段码液晶学习笔记

1. 引言 因新公司之前液晶数显表产品单片机一直用的是 C51单片机(SH79F9202U9),本人之前没有接触过这款单片机,为了维护老产品不得不重新研究研究这款单片机。 10位ADC LCD的增强型8051微控制器 SH79F9202是一种高速高效率8051可兼容单片机。在同样振…

构造+模拟,CF1148C. Crazy Diamond

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1148C - Codeforces 二、解题报告 1、思路分析 题目提示O(5n)的解法了,事实上我们O(3n)就能解决,关键在于1,n的处理 我们读入数据a[],代表初始数组…

继电器的选型和英应用

如何保证信号的稳定? 怎么消除继电器触点的电弧? 危害: 继电器的触点在动作时容易产生电弧,电弧具有热效应容易导致触点烧蚀粘接,缩短继电器的寿命,并且产生电弧的过程中会对外进行电磁辐射,…

GoFly框架快速新增接口/上手写代码

拿到一个新框架大家可能无从下手,因为你对框架设计思路、结构不了解,从而产生恐惧,所以我们框架是通过简单可视化界面安装,安装后即可看到效果,然后点击先点点看各个功能,看现有的功能是怎么写的&#xff0…

【错误记录】HarmonyOS 运行报错 ( Failure INSTALL_PARSE_FAILED_USESDK_ERROR )

文章目录 一、报错信息二、问题分析三、解决方案 一、报错信息 在 DevEco Studio 中 , 使用 远程设备 , 向 P40 Failure[INSTALL_PARSE_FAILED_USESDK_ERROR] compileSdkVersion and releaseType of the app do not match the apiVersion and releaseType on the device. 二、…

ABB 控制柜

1,主计算机:相当于电脑的主机,用于存放系统和数据,需要24V直流电才能工作。执行用户编写的程序,控制机器人进行响应的动作。主计算机有很多接口,比如与编程PC连接的服务网口、用于连接示教器的网口、连接轴计算机板的接口、连接安全面板的接口、不同的现场总线卡接口(比…

OrangePi AIpro测评

文章目录 1、外观部分2、系统初探3、AI性能体验4、总结 首先非常感谢csdn以及香橙派能够提供这样一个平台,可以测试OrangePi AIpro这样一块开发板,这块板子给我的感觉还是非常不错的,非常适合用来作为嵌入式学习的板子,性能也达到…

什么是边缘计算网关?工业方向应用有哪些?天拓四方

在数字化时代,信息的传输与处理变得愈发重要,而其中的关键节点之一便是边缘计算网关。这一先进的网络设备,不仅扩展了云端功能至本地边缘设备,还使得边缘设备能够自主、快速地响应本地事件,提供了低延时、低成本、隐私…

matlab工具使用记录-编辑器和命令行窗口分开还原

工具:matlab2021b 场景:在使用软件的过程中,我们误操作将matlab的编辑器单独出来了。这时候对软件进行各种操作都还原不回去。 matlab中编辑器和命令行窗口分开了如下图所示。 这时候只需要使用快捷键在编辑器窗口按CtrlshiftD,…

linux Inodes满导致数据库宕机

项目经理反馈集群环境中有个节点无法使用了需要支援下,同时发过来截图说明磁盘还是有空的。 登录系统后直接发现问题 orcl2:/home/oracledb2> sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Wed May 29 13:59:21 2024 Copyright (c) 1982,…

摩尔线程MTT S4000 AI GPU助力30亿参数大模型训练,性能比肩英伟达同类解决方案

中国国产GPU制造商摩尔线程(Moore Threads)在AI加速器领域取得了显著进展,其最新推出的MTT S4000 AI GPU在训练大规模语言模型时表现突出,据称相较于其前代产品有着显著的性能提升。根据cnBeta的报道,搭载S4000 GPU的全新“酷鹅千卡智能计算集…

装机必备——截图工具Snipaste安装教程

装机必备——截图工具Snipaste安装教程 软件下载 软件名称:Snipaste2.7 软件语言:简体中文 软件大小:15.37M 系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM2G或更高 下载通…

探索AES对称加密:Python代码实战

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:从非对称到对称 二、AES加密机制概述 三、Python实现AES加密与解密 …

三十三、openlayers官网示例Drawing Features Style——在地图上绘制图形,并修改绘制过程中的颜色

这篇讲的是使用Draw绘制图形时根据绘制形状设置不同颜色。 根据下拉框中的值在styles对象中取对应的颜色对象,new Draw的时候将其设置为style参数。 const styles {Point: {"circle-radius": 5,"circle-fill-color": "red",},LineS…

Llama改进之——RoPE旋转位置编码

引言 旋转位置编码(Rotary Position Embedding, RoPE)将绝对相对位置依赖纳入自注意力机制中,以增强Transformer架构的性能。目前很火的大模型LLaMA、QWen等都应用了旋转位置编码。 之前在[论文笔记]ROFORMER中对旋转位置编码的原始论文进行了解析,重点…

数据与结构——红黑树

目录 红黑树的概念 性质 结点的定义 插入 验证 查找 删除 红黑树与AVL树的比较 红黑树的概念 红黑树是一种自平衡二叉搜索树(Binary Search Tree, BST),其每个节点带有颜色属性,可以是红色或黑色。红黑树通过约束节点颜色…

未来已来:Facebook的数字革命与社交转型

在当今数字化时代,Facebook作为全球最大的社交网络之一,不仅扮演着连接人们的桥梁,更是引领着社交行业的数字革命与转型。本文将深入探讨Facebook如何通过创新技术、改变用户体验以及应对挑战,塑造了未来社交的面貌,以…

ozon卖家精灵,ozon卖家怎么使用

在跨境电商的浪潮中,OZON作为俄罗斯领先的电商平台,吸引了众多卖家争相入驻。然而,面对日益激烈的市场竞争,如何提升店铺的运营效果,成为卖家们迫切需要解决的问题。而OZON卖家精灵作为一款专为OZON卖家打造的辅助工具…

java高级——Collection集合之List探索(包含ArrayList、LinkedList、Vector底层实现及区别,非常详细哦)

java高级——Collection集合之List探索 前情提要文章介绍提前了解的知识点1. 数组2. 单向链表3. 双向链表4. 为什么单向链表使用的较多5. 线程安全和线程不安全的概念 ArrayList介绍1. 继承结构解析1.1 三个标志性接口1.2 AbstractList和AbstractCollection 2. ArrayList底层代…