JDBC详述执行过程

JDBC执行sql过程 / 实际中连接池会回收而非真正关闭。// 按列名获取 String name = rs.getString(2);// 按索引获取(从 1 开始)Class.forName("com.mysql.cj.jdbc.Driver");// MySQL 驱动类。// 设置参数(索引从 1 开始)conn.commit();​:通过 SPI 机制自动识别驱动类,无需显式调用。// 执行多个 SQL... 阅读详情
  • 首先来说下什么是JDBC?

JDBC:Java DataBase Connectivtiy,也就是Java语言操作数据库;
JDBC:其实是由Sun公司定义的一套操作关系数据库的规则,也就是Java中我们所说的接口,不同的数据库(如:MySQL,Oracle)去实现这个接口,提供数据库驱动jar包。真正执行的代码是驱动jar包中的实现类

执行步骤:

  1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的(如:libs)目录下
2.右键-->Add As Library
  1. 注册驱动
Class.forName(com.mysql.jdbc.Driver);  --固定不变
  1. 获取数据库连接对象
getConnection("jdbc:mysql://主机号:端口/数据库名称","用户名","密码");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root")

  1. 定义要执行的sql语句(此步骤位置可变)
String sql = "insert into stu(name,age) value('mahang',20);
  1. 获取要执行sql的对象Statement
Statement st = conn.createStatement();
  1. 执行sql
int count = st.executeStatement();
  1. 处理结果
下面讲:
  1. 释放结果
st.close();
sconn.close();
--注意:释放顺序

详解各个操作

  1. DriverManager:驱动管理对象
    • 注册驱动:告诉程序该使用哪一个数据库驱动jar
	写代码使用:  Class.forName("com.mysql.jdbc.Driver");
	注意:mysql5之后的驱动jar包可以省略注册驱动的步骤。
* 获取数据库连接:
方法:static Connection getConnection(String url, String user, String password) 
参数:
	url:指定连接的路径
		语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
		例子:jdbc:mysql://localhost:3306/db3
		细节:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称
	user:用户名
	password:密码 

  1. Connection:数据库连接对象
    • 获取sql对象
Statement createStatement()
PreparedStatement prepareStatement(String sql)  
* 管理事务
开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
 提交事务:commit() 
 回滚事务:rollback() 
  1. Statement:执行sql的对象
    • 执行sql
1. boolean execute(String sql) :可以执行任意的sql 了解 
2. int executeUpdate(String sql) :执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句
			* 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。
3. ResultSet executeQuery(String sql)  :执行DQL(select)语句
  1. ResultSet:结果集对象,封装查询结果
    • boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true

    • getXxx(参数):获取数据
      * Xxx:代表数据类型 如: int getInt() , String getString()
      * 参数:
      1. int:代表列的编号,从1开始 如: getString(1)
      2. String:代表列名称。 如: getDouble(“balance”)

    • 注意:
      使用步骤:
      1. 游标向下移动一行
      2. 判断是否有数据
      3. 获取数据

  2. PreparedStatement:执行sql的对象
    1. SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
      • 输入用户随便,输入密码:a’ or ‘a’ = 'a
      • sql:select * from user where username = ‘fhdsjkf’ and password = ‘a’ or ‘a’ = ‘a’
    2. 解决sql注入问题:使用PreparedStatement对象来解决
    3. 预编译的SQL:参数使用?作为占位符
    4. 步骤:
      1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
      2. 注册驱动
      3. 获取数据库连接对象 Connection
      4. 定义sql
      * 注意:sql的参数使用?作为占位符。 如:select * from user where username = ? and password = ?;
    5. 获取执行sql语句的对象 PreparedStatement Connection.prepareStatement(String sql)
    6. 给?赋值:
      * 方法: setXxx(参数1,参数2)
      * 参数1:?的位置编号 从1 开始
      * 参数2:?的值
    7. 执行sql,接受返回结果,不需要传递sql语句
    8. 处理结果
    9. 释放资源
    10. 注意:后期都会使用PreparedStatement来完成增删改查的所有操作
      1. 可以防止SQL注入
      2. 效率更高

JDBC操作事务

  • 使用Connection对象来管理事务
    • 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
      • 在执行sql之前开启事务
    • 提交事务:commit()
      • 当所有sql都执行完提交事务
    • 回滚事务:rollback()
      • 在catch中回滚事务
OAI骨关节炎数据集申请与DICOM下载全流程避坑指南 医学影像分析中,DICOM格式是存储与交换CT、MRI等数据的通用标准,其元数据Tag承载着像素间距、层厚等关键物理信息,直接影响定量分析的准确性。在骨关节炎研究领域,OAI数据集因样本量大、随访时间长而成为高价值资源,但获取需通过NDA协议申请,并借助nda-tools命令行工具完成TB级影像的批量下载与断点续传。这一流程涉及浏览器环境配置、DICOM格式转换及Python预处理等工程环节,任一细节疏漏都可能导致数据读取异常或分析偏差。掌握从申请到落地的完整链路,能显著提升医学影像AI研究的效率与可复现性 阅读详情

相关推荐

DSP28335与Vofa+上位机通信实战:SCIb配置避坑指南(附完整代码)

本文提供DSP28335与Vofa+上位机通信的实战指南,重点解析SCIb模块配置的常见问题与解决方案。针对研旭开发板的硬件连接、波特率精确计算、FIFO高效使用以及FireWater协议封装进行了详细说明,并附有完整代码,帮助开发者快速实现实时数据可视化与波形分析,提升调试效率。

weixin_29172963的博客 150

JDBC基本操作

本文介绍了在Java应用程序中通过JDBC执行SQL语句的核心流程。主要内容包括:1)基本执行步骤:建立连接、创建Statement、执行SQL、处理结果和关闭资源;2)详细演示了SELECT查询、INSERT插入、UPDATE更新和DELETE删除操作的代码实现;3)提供了事务控制示例,展示如何设置自动提交、提交和回滚操作。文章通过完整代码示例展示了每种SQL语句的具体用法,强调使用PreparedStatement防止SQL注入,并推荐资源自动关闭和事务处理等最佳实践。

shangjg3的博客 961

LabVIEW Modbus TCP通信避坑指南:解决连接中断、服务器异常与自动重连问题

本文详细解析了LabVIEW环境下Modbus TCP通信的常见问题,包括连接中断、服务器异常等,并提供了自动重连机制的实现方案。通过优化错误处理、超时参数和资源管理,帮助开发者构建更稳定的工业级Modbus TCP客户端,显著提升通信可靠性。

weixin_42525211的博客 422

Java JDBC基本操作

Java JDBC基本操作

Eaeyson的博客 780

ray.tune调参学习笔记0:调参基本流程

本篇总结python中使用tune调参的整体流程

Mr_111000的专栏 2621

shopee app算法分析第一篇

shopee app算法分析第一篇分析完整算法大概要好几篇,耐心等待下.国内只会发律师函,牛逼,一个律师套话,一个律师发函,大意了(警惕卡通律师头像),希望law可以保护好你,还是干国外好.

2531

JDBC的执行流程

第二部:获取连接[建立与数据库的连接](表示jvm的进程和数据库进程之间的通道打开了,属于进程间通讯,是重量级的,使用完之后一定要关闭通道)第六步:释放资源、关闭连接(使用完资源之后一定要关闭资源,Java和数据库之间属于进程间的通信,开启之后一定要关闭)第五步:处理查询结果集(只有第四步执行的是select语句的时候才有第五步,如果不是select语句直接到第六步)第一步:注册驱动(告诉Java程序即将连接的是哪个数据库)第三步:获取数据库操作对象(专门执行sql语句的对象)

m0_71202849的博客 3257

手把手教你用VS Code + Codex在WSL中高效编程(避坑指南)

本文提供了一份详细的避坑指南,教你如何在WSL环境中高效配置和使用VS Code与OpenAI Codex。文章核心在于解决WSL内Codex扩展的OAuth登录失败问题,推荐将扩展安装在Windows本地,并通过UNC路径直接访问WSL文件系统,从而实现AI辅助编程与Linux开发环境的无缝结合,提升编码效率。

weixin_28677451的博客 1062

JDBC的基本执行流程

JDBC(Java Database Connectivity)是Java语言中用于访问关系型数据库的一种标准API。它提供了一组接口和类,使Java应用程序能够与各种数据库进行连接、执行SQL查询和更新操作,并处理数据库的结果。

qq_72172339的博客 1031

扣子Coze触发器使用指南:实现工作流定时执行的完整教程

Coze平台触发器功能详解:定时触发器配置指南 摘要:Coze平台的触发器是实现自动化任务的核心组件,其中定时触发器能够按预设时间自动执行工作流。本指南介绍了定时触发器的配置方法,包括每日、每周、每月及Cron表达式等多种时间设置方式,以及如何关联工作流执行具体任务。文章还提供了健身提醒等实用案例,并涵盖了触发器调试、发布及常见问题解决方案。通过合理配置定时触发器,用户可以轻松实现各类自动化任务,如定时发送消息、数据采集等,大幅提升工作效率。

互联网架构师笔记 1922

车载诊断架构 --- 车载ECU开发中DTC数量与芯片存储能力的关系及应对策略

本文探讨了汽车电子系统中ECU存储DTC故障码的容量问题及解决方案。作者作为汽车电子工程师,针对台架测试中遇到的DTC存储超限案例展开分析,指出随着汽车智能化发展,ECU需处理的DTC数量激增与芯片存储能力有限的矛盾。文章详细介绍了DTC的存储需求、ECU支持数量与芯片容量的关系,并提出应对策略,通过实际案例验证了方案的可行性。最后强调在ECU开发中需合理分配存储资源,确保关键故障信息不丢失。

Soly_kun的博客 87

JDBC的七个步骤:

z1.JDBC所需的四个参数(user,password,url,driverClass) 这个步骤就相当于我们第一次打开并操作数据库,首先下载工具,准备好用户名和密码还有主机端口号等信息。代码如下: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPub

The_world_Hello的博客 7884

HandwrittenMathFormulaRecognition:基于YOLOv8的手写数学公式识别系统

输入:包含手写数学公式的图像(拍摄的板书、作业纸等)输出:对应的数字文本形式的数学公式(如LaTeX格式或文本表达式)标准的手写数学表达式数据集,包含在线轨迹及图片,广泛用于公式识别研究。包含近10万对公式图片及对应的LaTeX标注,适合训练公式识别模型。MathBrush公开手写数学公式图像数据集,含多种书写风格。手写数字与符号数据集(MNIST及其扩展)用于基础数学符号的训练。

YOLO 283

JDBC的执行过程

JDBC 是什么? JDBC(Java Data Base Connectivity, Java 数据库连接)是一种用于执行 SQL 语句的 Java API,是 Java 应用连接各种关系型数据库的基本的接口。可以为多种关系数据库提供统一访问。 JDBC有什么作用? 简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。再简单具体就是完成了对数据库...

YJT180的博客 3050

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

详述JDBC查询方法执行过程

package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; interface IRowMapper{ void rowMapper(...

zhaobin0731的博客 152

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

详述jdbc查询方法的执行过程

在这里,jdbc是java database connection的缩写 我们在Java连接数据库时,一般有六个步骤: 1.加载驱动程序类;2.建立连接;3.创建语句;4.执行语句;5.处理结果;6.释放资源 我们把查询方法进行封装的目的是定义一个查询方法,能够实现对不同SQL语句做出对应的结果 下面我们来看这样一段代码,并对代码进行分析,代码执行的先后顺序用小写字母表示: package...

lzx_cherry的博客 573

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

详述jdbc查询方法执行过程

代码 package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; interface IRowMapper { void row(Resul...

涟涟的博客 538

JDBC详细解析流程,解读jdbc的执行过程

https://www.cnblogs.com/erbing/p/5805727.html

Ants的博客 135

详述JDBC执行过程

首先JDBC是什么? JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。 实现java数据库连接和用eclipse...

low1101的博客 515

十六、Sharding-JDBC-执行过程

Garry 300

JDBC执行存储过程的实现方式

其中,JDBC(Java Database Connectivity)技术作为连接数据库与应用的重要桥梁,其在执行存储过程方面的实现方式对于提升数据处理效率和系统稳定性至关重要。同时,还需要考虑存储过程的返回结果处理,确保能够正确获取和处理存储过程返回的数据。同时,还需要注意异常处理、性能优化等方面的问题,确保系统的稳定性和可靠性。同时,还需要注意存储过程的返回结果处理方式,确保能够正确获取和处理存储过程返回的数据。在获取结果时,需要注意结果集的格式和内容,确保能够正确解析和处理结果集中的数据。

2501_90410679的博客 108

使用JDBC CallableStatements执行存储过程

使用JDBCCallableStatements执行存储过程 实验目的:掌握jdbc callableStatements 的执行过程。 实验内容:掌握jdbc callableStatements 的执行过程。 实验过程: CallableStatement的所有超级接口为PreparedStatement、Statement、Wrapper。其中继承自PreparedStatemen...

weixin_30709061的博客 91

JDBC执行过程回顾与MyBatis执行过程

1、JDBC执行过程回顾 1)获取Connection连接 2)预编译SQL 3)执行SQL 4)读取结果 1.2、预编译的三种执行器 三种执行器都支持批处理 1)Mysql不支持(setFetchSize)设置一次性读取多少行。 2)addBatch批量操作,将多个SQL合并在一起,最后调executeBatch一起发送至数据库执行。 3)setFetchSize设置从数据库每次读取的数量单位。该举措是为了防止一次性从数据库加载数据过多,导致内存溢出。 1.3、关于防止SQL注入问题 1)简单执行

chi_666的博客 251

MyBatis系列1之JDBC执行过程回顾

1、MyBatis简述 MyBatis是一个优秀的持久层框架,底层仍是使用的JDBC访问数据库,因此它也是对JDBC操作数据数据库的过程进行封装。JDBC是连接数据库和Java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作。 2、JDBC简述 Java数据库连接 Java Database Connectivity,简称JDBC,它是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是一类接口,制定了统一访问各类关系数据库的

chi_666的博客 64
上一篇: MySQL:事务与DCL
下一篇: LeetCode43. 字符串相乘(易懂,原来如此简单)
Young-_-D
博客等级 码龄8年 62粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值