jdbc 常用接口类

2024-04-21 23:58
文章标签 jdbc 常用 接口类

本文主要是介绍jdbc 常用接口类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.Driver接口
   每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类,在加载某一驱     动程序的Driver类时,应该创建自己的实例并向java.sql.DriverManager类注册该实例。
   通常情况下通过java.lang.Class类的静态方法forName(String className),加载欲连接数据库的      Driver类,该方法的入口参数为欲加载Driver类的完整路径。成功加载后,会将Driver类的实例注册到    DriverManager类中,如果加载失败,将抛出ClassNotFoundException异常,即未找到指定Driver类的     异常。
   DriverManager类
  java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程    序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接;另外,DriverManager类也处   理诸如驱动程序登录时间限制及登录和跟踪消息的显示等工作。成功加载Driver类并在DriverManager类   中注册后,DriverManager类即可用来建立数据库连接。
  当调用DriverManager类的getConnection()方法请求建立数据库连接时,DriverManager类将试图定位一  个适当的Driver类,并检查定位到的Driver类是否可以建立连接,如果可以则建立连接并返回,如果不    可以则抛出SQLException异常。
DriverManager类的方法:
1. getConnection(String url, String user, String password)
   为静态方法,用来获得数据库连接,有3个入口参数,依次为欲连接数据库的URL、用户名和密码,返回   值类型为java.sql.Connection
2. setLoginTimeout(int seconds)
   为静态方法,用来设置每次等待建立数据库连接的最长时间
3. setLogWriter(java.io.PrintWriter out)
   为静态方法,用来设置日志的输出对象
4. println(String message)
   为静态方法,用来输出指定消息到当前的JDBC日志流

二.Connection接口
  java.sql.Connection接口代表与特定数据库的连接,在连接的上下文中可以执行SQL语句并返回结果,    还可以通过getMetaData()方法获得由数据库提供的相关信息,例如数据表、存储过程和连接功能等信息   常用方法:
1.createStatement()
  创建并返回一个Statement实例,通常在执行无参的SQL语句时创建该实例
2.prepareStatement()
  创建并返回一个PreparedStatement实例,通常在执行包含参数的SQL语句时创建该实例,并对SQL语句进   行了预编译处理
3.prepareCall()
  创建并返回一个CallableStatement实例,通常在调用数据库存储过程时创建该实例
4.setAutoCommit()
  设置当前Connection实例的自动提交模式。默认为true,即自动将更改同步到数据库中;如果设为false   ,需要通过执行commit()或rollback()方法手动将更改同步到数据库中
5.getAutoCommit()
  查看当前的Connection实例是否处于自动提交模式,如果是则返回true,否则返回false
6.setSavepoint()
  在当前事务中创建并返回一个Savepoint实例,前提条件是当前的Connection实例不能处于自动提交模式  ,否则将抛出异常
7.releaseSavepoint()
  从当前事务中移除指定的Savepoint实例
8.setReadOnly()
  设置当前Connection实例的读取模式,默认为非只读模式。不能在事务当中执行该操作,否则将抛出异  常。有一个boolean型的入口参数,设为true则表示开启只读模式,设为false则表示关闭只读模式
9.isReadOnly()
  查看当前的Connection实例是否为只读模式,如果是则返回true,否则返回false
10.isClosed()
  查看当前的Connection实例是否被关闭,如果被关闭则返回true,否则返回false
11.commit()
  将从上一次提交或回滚以来进行的所有更改同步到数据库,并释放Connection实例当前拥有的所有数据  库锁定
12.rollback()
  取消当前事务中的所有更改,并释放当前Connection实例拥有的所有数据库锁定。该方法只能在非自动  提交模式下使用,如果在自动提交模式下执行该方法,将抛出异常。有一个入口参数为Savepoint实例的  重载方法,用来取消Savepoint实例之后的所有更改,并释放对应的数据库琐定
13.close()
   立即释放Connection实例占用的数据库和JDBC资源,即关闭数据库连接
 

三.Statement接口
   java.sql.Statement接口用来执行静态的SQL语句,并返回执行结果。例如,对于insert、update和   delete语句,调用executeUpdate(String sql)方法,而select语句则调用executeQuery(String sql)   方法,并返回一个永远不能为null的ResultSet实例。
 
常用方法:
1.executeQuery(String sql)
  执行指定的静态SELECT语句,并返回一个永远不能为null的ResultSet实例
 
2.executeUpdate(String sql)
  执行指定的静态INSERT、UPDATE或DELETE语句,并返回一个int型数值,为同步更新记录的条数
 
3.clearBatch()
 清除位于Batch中的所有SQL语句。如果驱动程序不支持批量处理将抛出异常
 
4.addBatch(String sql)
  将指定的SQL命令添加到Batch中。String型入口参数通常为静态的INSERT或UPDATE语句。如果驱动程序  不支持批量处理将抛出异常
 
5.executeBatch()
  执行Batch中的所有SQL语句,如果全部执行成功,则返回由更新计数组成的数组,数组元素的排序与SQL   语句的添加顺序对应。数组元素有以下几种情况:①大于或等于零的数:说明SQL语句执行成功,为影响   数据库中行数的更新计数;②-2:说明SQL语句执行成功,但未得到受影响的行数③-3:说明SQL语句执    行失败,仅当执行失败后继续执行后面的SQL语句时出现。如果驱动程序不支持批量、或者未能成功执行   Batch中的SQL语句之一,将抛出异常
6.close()
  立即释放Statement实例占用的数据库和JDBC资源
 

四.PreparedStatement接口
  java.sql.PreparedStatement接口继承并扩展了Statement接口,用来执行动态的SQL语句,即包含参数  的SQL语句。通过PreparedStatement实例执行的动态SQL语句,将被预编译并保存到PreparedStatement  实例中,从而可以反复并且高效地执行该SQL语句。
  需要注意的是,在通过setXXX()方法为SQL语句中的参数赋值时,建议利用与参数类型匹配的方法,也可  以利用setObject()方法为各种类型的参数赋值。
如:
  PreparedStatement ps = connection
       .prepareStatement("select * from table_name where id>? and (name=? or name=?)");          ps.setInt(1, 6);
        ps.setString(2, "马先生");
        ps.setObject(3, "李先生");
        ResultSet rs = ps.executeQuery();
方法:
1.executeQuery()
 执行前面包含参数的动态SELECT语句,并返回一个永远不能为null的ResultSet实例
 
2.executeUpdate()
 执行前面包含参数的动态INSERT、UPDATE或DELETE语句,并返回一个int型数值,为同步更新记录的条数
 
3.setInt(int i, int x)
 为指定参数设置int型值,对应参数的SQL类型为INTEGER
 
4.setLong(int i, long x)
 为指定参数设置long型值,对应参数的SQL类型为BIGINT
 
5.setFloat(int i, float x)
 为指定参数设置float型值,对应参数的SQL类型为FLOAT
 
6.setDouble(int i, double x)
 为指定参数设置double型值,对应参数的SQL类型为DOUBLE
 
7.setString(int i, String x)
 为指定参数设置String型值,对应参数的SQL类型为VARCHAR或LONGVARCHAR
 
8.setBoolean(int i, boolean x)
 为指定参数设置boolean型值,对应参数的SQL类型为BIT
 
9.setDate(int i, Date x)
 为指定参数设置java.sql.Date型值,对应参数的SQL类型为DATE
 
10.setObject(int i, Object x)
 用来设置各种类型的参数,JDBC规范定义了从Object类型到SQL类型的标准映射关系,在向数据库发送时将被转换为相应的SQL类型
 
11.setNull(int i, int sqlType)
 将指定参数设置为SQL中的NULL。该方法的第二个入口参数用来设置参数的SQL类型,并且必须设置,具体值从java.sql.Types类中定义的静态常量中选择
 
12.clearParameters()
 清除当前所有参数的值
注意:
  setXXX()方法的第一个入口参数为欲赋值参数的索引位置,从1开始;第二个入口参数为参数的值,类型  因方法而定。


五.CallableStatement接口
java.sql.CallableStatement接口继承并扩展了PreparedStatement接口,用来执行SQL的存储过程。

JDBC API定义了一套存储过程SQL转义语法,该语法允许对所有RDBMS通过标准方式调用存储过程。该语法定义了两种形式,分别是包含结果参数和不包含结果参数,如果使用结果参数,则必须将其注册为OUT型参数,参数是根据定义位置按顺序引用的,第一个参数的索引为1。

为参数赋值的方法使用从PreparedStatement中继承来的setXXX()方法。在执行存储过程之前,必须注册所有OUT参数的类型,它们的值是在执行后通过getXXX()方法获得的。

CallableStatement可以返回一个或多个ResultSet实例。处理多个ResultSet对象的方法是从Statement中继承来的。

 

六.ResultSet接口
java.sql.ResultSet接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的相关信息。例如列名和类型等,ResultSet实例通过执行查询数据库的语句生成。

ResultSet实例具有指向当前数据行的指针,最初,指针指向第一行记录的前方,通过next()方法可以将指针移动到下一行,如果存在下一行该方法则返回true,否则返回false,所以可以通过while循环来迭代ResultSet结果集。默认情况下ResultSet实例不可以更新,只能向前移动指针,所以只能迭代一次,并且只能按从前到后的顺序。如果需要,可以生成可滚动和可更新的ResultSet实例。

ResultSet接口提供了从当前行检索不同类型列值的getXXX()方法,均有两个重载方法,分别根据列的索引编号和列的名称检索列值,其中以列的索引编号较为高效,编号从1开始。对于不同的getXXX()方法,JDBC驱动程序尝试将基础数据转换为与getXXX()方法相应的Java类型并返回。

在JDBC 2.0 API(JDK 1.2)之后,为该接口添加了一组更新方法updateXXX(),均有两个重载方法,分别根据列的索引编号和列的名称指定列。可以用来更新当前行的指定列,也可以用来初始化欲插入行的指定列,但是该方法并未将操作同步到数据库,需要执行updateRow()或insertRow()方法完成同步操作。

方法:
  first()
 移动指针到第一行。如果结果集为空则返回false,否则返回true。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
last()
 移动指针到最后一行。如果结果集为空则返回false,否则返回true。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
previous()
 移动指针到上一行。如果存在上一行则返回true,否则返回false。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
next()
 移动指针到下一行。指针最初位于第一行之前,第一次调用该方法将移动到第一行。如果存在下一行则返回true,否则返回false
 
beforeFirst()
 移动指针到ResultSet实例的开头,即第一行之前。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
afterLast()
 移动指针到ResultSet实例的末尾,即最后一行之后。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
absolute()
 移动指针到指定行。有一个int型入口参数,正数表示从前向后编号,负数表示从后向前编号,编号均从1开始。如果存在指定行则返回true,否则返回false。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
relative()
 移动指针到相对于当前行的指定行。有一个int型入口参数,正数表示向后移动,负数表示向前移动,视当前行为0。如果存在指定行则返回true,否则返回false。如果结果集类型为TYPE_FORWARD_ONLY将抛出异常
 
getRow()
 查看当前行的索引编号。索引编号从1开始,如果位于有效记录行上则返回一个int型索引编号,否则返回0
 
findColumn()
 查看指定列名的索引编号。该方法有一个String型入口参数,为欲查看列的名称,如果包含指定列,则返回int型索引编号,否则将抛出异常
 
isBeforeFirst()
 查看指针是否位于ResultSet实例的开头,即第一行之前。如果是则返回true,否则返回false
 
isAfterLast()
 查看指针是否位于ResultSet实例的末尾,即最后一行之后。如果是则返回true,否则返回false
 
isFirst()
 查看指针是否位于ResultSet实例的第一行。如果是则返回true,否则返回false
 
isLast()
 查看指针是否位于ResultSet实例的最后一行。如果是则返回true,否则返回false
 
close()
 立即释放ResultSet实例占用的数据库和JDBC资源,当关闭所属的Statement实例时也将执行此操作
 
getInt()
 以int型获取指定列对应SQL类型的值。如果列值为NULL,则返回值0
 
getLong()
 以long型获取指定列对应SQL类型的值。如果列值为NULL,则返回值0
 
getFloat()
 以float型获取指定列对应SQL类型的值。如果列值为NULL,则返回值0
 
getDouble()
 以double型获取指定列对应SQL类型的值。如果列值为NULL,则返回值0
 
getString()
 以String型获取指定列对应SQL类型的值。如果列值为NULL,则返回值null
 
getBoolean()
 以boolean型获取指定列对应SQL类型的值。如果列值为NULL,则返回值false
 
getDate()
 以java.sql.Date型获取指定列对应SQL类型的值。如果列值为NULL,则返回值null
 
getObject()
 以Object型获取指定列对应SQL类型的值。如果列值为NULL,则返回值null
 
getMetaData()
 获取ResultSet实例的相关信息,并返回ResultSetMetaData类型的实例
 
updateNull()
 将指定列更改为NULL。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateInt()
 更改SQL类型对应int型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateLong()
 更改SQL类型对应long型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateFloat()
 更改SQL类型对应float型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateDouble()
 更改SQL类型对应double型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateString()
 更改SQL类型对应String型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateBoolean()
 更改SQL类型对应boolean型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateDate()
 更改SQL类型对应Date型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
updateObject()
 可更改所有SQL类型的指定列。用于插入和更新,但并不会同步到数据库,需要执行updateRow()或insertRow()方法完成同步
 
moveToInsertRow()
 移动指针到插入行,并记住当前行的位置。插入行实际上是一个缓冲区,在插入行可以插入记录,此时,仅能调用更新方法和insertRow()方法,通过更新方法为指定列赋值,通过insertRow()方法同步到数据库,在调用insertRow()方法之前,必须为不允许为空的列赋值
 
moveToCurrentRow()
 移动指针到记住的位置,即调用moveToInsertRow()方法之前所在的行
 
insertRow()
 将插入行的内容同步到数据库。如果指针不在插入行上,或者有不允许为空的列的值为空,将抛出异常
 
updateRow()
 将当前行的更新内容同步到数据库。更新当前行的列值后,必须调用该方法,否则不会将更新内容同步到数据库
 
deleteRow()
 删除当前行。执行该方法后,并不会同步到数据库,而是在执行close()方法后同步到数据库

这篇关于jdbc 常用接口类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924358

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx: