JDBC API中包含四个常用的接口和一个类分别是:

1、Connection接口

2、Statement接口

3、PreparedStatement接口

4、ResultSet接口

5、DriverManager类

下面一一介绍这四个接口和一个类

(1)Connection接口

Connection接口位于java.sql包当中,是与数据库连接会的对象,只有获得特定的数据库连接对象,才可以访问数据库进行数据库操作。在进行数据库连接的时候还要用到DriverManager类中的getConnection(url,username,password)方法。例如:

 String url = "jdbc:mysql://localhost:3306/mysqltest";
//数据库用户名
String userName = "root";
//数据库密码
String passWord = "123456";
//创建Connection连接
Connection conn = (Connection)DriverManager.getConnection(url,userName,passWord);

此外该接口中还有close()方法用于关闭数据库连接,但是该数据库还是会占用jdbc资源。

(2)DriverManager类

该类中包含了与数据库交互操作的方法,该类中的方法全部有数据库厂商提供。DriverManager类中有6个常用的也是重要的方法分别是:

public static void deregisterDriver(Driver driver) throws SQLException

该方法是从DriverManager的管理列表中删除一个驱动程序。其中driver参数是要删除的驱动对象。

public static Connection getConnection(String url) throws SQLException

该方法是根据指定数据库连接URL,建立与数据库连接Connection。其中参数url是数据库连接的URL

public static Connection getConnection(String url,Properties info)

该方法是根据指定数据库连接URL,以及数据库连接属性信息建立数据库连接Connection。其中参数url为数据库连接URL,参数info是数据库连接属性。

public static Connection getConnection(String url,String user,String password) throws SQLException

该方法是根据数据库连接URL、用户名以及密码建立数据库连接Connection。参数url是数据库连接URL,参数user是连接数据库的用户名,参数password是连接数据库的密码。

public static Enumeration<Driver>getDrivers()该方法是获取当前DriverManager中已加载的所有驱动程序,它的返回值为Enumeration。

public static void registerDriver(Driver driver) throws SQLException

该方法是向DriverManager注册一个驱动对象,参数driver是要注册的驱动。

(3)Statement接口

Statement接口是Java程序执行数据库操作的重要接口,用于已经建立数据库连接的基础之上,向数据库发送要执行的SQL语句。它用于执行不带参数的简单SQL语句。该接口中包含九个常用的重要方法。

void addBatch(String sql) throws SQLException该方法是将SQL语句添加到此Statement对象的当前命令列表中,此方法用于SQL命令的批处理。

void clearBatch() throws SQLException该方法是清空Statement对象中的命令列表。

void close() throws SQLException 该方法是立即释放此Statement对象的数据库和JDBC资源,而不是等待该对象自动关闭时发生此操作。

boolean excute(String sql) throws SQLException 该方法是执行指定的SQL语句。如果sql语句返回结果,此方法返回true,否则返回false。

int[] excuteBatch() throws SQLException 该方法是将一批SQL命令提交给数据库执行,返回更新计数组成的数组。

ResultSet excuteQuery(String sql) throws SQLException 该方法是执行查询类型(select)的SQL语句,此方法返回查询所获取的结果集ResultSet对象。

excuteUpdate int excuteUpdate(String sql) throws SQLException 该方法执行SQL语句中DML类型(insert、update、delete)的SQL语句,返回更新所影响的行数。

Connection getConnection() throws SQLException 该方法获取生成此Statement对象的Connection对象

boolean isClosed() throws SQLException 该方法用来判断Statement对象是否已被关闭,如果Statement对象被关闭,则不能再调用此Statement对象执行SQL语句,此方法返回布尔值。

(4)PreparedStatement接口

PreparedStatement接口位于java.servlet包当中,它继承了Statement,但是PreparedStatement与Statement有这两方面的不同,第一:由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。

创建过程:

以下的代码段(其中 con 是 Connection 对象)创建包含带两个 IN 参数占位符的 SQL 语句的 PreparedStatement 对象:
 PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");

查看代码

pstmt 对象包含语句 "UPDATE table4 SET m = ? WHERE x = ?",它已发送给DBMS,并为执行作好了准备。

void setBinaryStream(int parameterIndex,InputStream x) throws SQLException  将输入流x作为SQL语句中的参数值,parameterIndex是参数位置索引。

void setBoolean(int parameterIndex,boolean x) throws SQLException 将布尔值x作为SQL语句中的参数值,parameterIndex为参数位置索引。

void setByte(int parameterIndex,byte x) throws SQLException 将byte值x作为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setDate(int parameterIndex,Date x) throws SQLException 将java.sql.Date值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setDouble(int parameterIndex,double x) 将double值x做为SQL语句中的参数值,parameterIndex为参数索引。

void setFloat(int parameterIndex,floatx) throws SQLException 将float值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setInt(int parameterIndex,int x) throws SQLException 将int值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setInt(int parameterIndex,long x) throws SQLException 将long值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setObject(int parameterIndex,Object x) throws SQLException 将object对象x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setShort(int parameterIndex,short x) throws SQLException 将short值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

void setString(int parameterIndex,String x) throws SQLException 将String值x做为SQL语句的参数值,parameterIndex为参数位置的索引。

void setTimestamp(int parameterIndex,Timestamp x) throws SQLException 将java.sql.Timestamp值x做为SQL语句中的参数值,parameterIndex为参数位置的索引。

(5)Result接口

数据库结果集的结果表,通常通过查询数据库的语句生成。

以下代码片段(其中 con 为有效的 Connection 对象)演示了如何生成可滚动且不受其他更新影响的、可更新的结果集。请参阅 ResultSet 字段以了解其他选项。
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); // rs will be scrollable, will not show changes made by others, // and will be updatable

查看代码

ResultSet 接口提供用于从当前行检索列值的获取方法(getBoolean、getLong 等)。可以使用列的索引编号或列的名称检索值。一般情况下,使用列索引较为高效。列从 1 开始编号。为了获得最大的可移植性,应该按从左到右的顺序读取每行中的结果集列,而且每列只能读取一次。
ResultSet接口中常用的方法有:
boolean absolute(int row) throws SQLException 将光标移动到此ResultSet对象的给定行编号,参数row为行编号。
void afterLast() throws SQLException 将光标移动到此ResultSet对象的最后一行之后,如果结果集中不包含任何行,则此方法无效。
void beforeFirst() throws SQLException 立即释放此ResultSet对象的数据库和JDBC资源
void deleteRow() throws SQLException 从此ResultSet对象和底层数据库中删除当前行。
boolean first() throws SQLException 将光标移动到此ResultSet对象的第一行
InputStream getBinaryStream(String columnLabel) throws SQLException 以byte流的方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称。
Date getDate(String columnLabel) throws SQLException 以java.sql.Date的方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称。
double getDouble(String columnLabel) throws SQLException 以double的方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称。
float getFloat(String columnLabel) throws SQLException 以float的方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称
int getInt(String columnLabel) throws SQLException 以int的方式获取ResultSet对象当前行中指定的列的值,参数columnLabel为列名称。
String getString(String columnLabel) throws SQLException 以String的方式获取ResultSet对象当前行中指定列的值,参数columnLabel为列名称。
boolean isClosed() throws SQLException 判断当前ResultSet对象是否已关闭。
boolean last() throws SQLException 将光标移动到此ResultSet对象的最后一行。
boolean next() throws SQLException 将光标位置向后移动一行,如移动的新行有效返回true,否则返回false。
boolean previous() throws SQLException 将光标位置向前移动一行,如移动的新行有效返回true,否则返回false。

JavaWeb学习之JDBC API中常用的接口和类的更多相关文章

  1. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  2. MODBUS协议解析中常用的转换帮助类(C#)

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  3. JDBC中常用的接口

    JDBC常用的接口DriverManager 驱动管理器获得数据库链接 Connection 数据库链接接口 Statement 语句接口,用来静态操作SQL语句 PreparedStatement ...

  4. Web API中常用Filter的执行顺序举例讲解

    在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想 ...

  5. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  6. MySQL学习之路3-MySQL中常用数据类型

    MySQL中常用数据类型 字符型 存储字符型数据.例如姓名,地址,电话号码等.使用引号括起来,一般使用单引号. 常用类型: char(255) 定长字符串,最大长度255个字符. varchar(25 ...

  7. 列举Java中常用的包、类和接口

    常用的类: BufferedReader ,BufferedWriter FileReader    ,FileWirter String      ,Integer Date        ,Cla ...

  8. Spring常用的接口和类(二)

    七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostPro ...

  9. Spring常用的接口和类(一)

    一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: p ...

随机推荐

  1. java注释中使用注解@see

    缘起 在写java时,有时需要写注释,而为了更好的描述,需要引用和参考其他代码.为了让阅读者更好的体验,javadoc中支持链接跳转,这就需要用到注解@see. @see用法 注解@see可以在注释中 ...

  2. 第二章 R语言数据结构

    R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...

  3. uva11991 Easy Problem from Rujia Liu?

    Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an ...

  4. random模块函数分析(一)

    random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): 这是一个产生整数随机数的函数,参数start代 ...

  5. Volatile和Synchronized对可见性和原子性的支持

    在学习并发编程的时候,遇见了volatile和synchronized关键字问题,volatile是可以保证可见性,但无法保证原子性,synchronized关键字由于其是加锁机制,肯定是可以保证原子 ...

  6. Spring详解(三)------DI依赖注入

    上一篇博客我们主要讲解了IOC控制反转,也就是说IOC 让程序员不在关注怎么去创建对象,而是关注与对象创建之后的操作,把对象的创建.初始化.销毁等工作交给spring容器来做.那么创建对象的时候,有可 ...

  7. d3.js多个x轴y轴canvas柱状图

    最终效果图镇楼: 本文通过三个步骤来介绍d3.js. 1.简单的柱状图: 2.多个x轴的柱状图: 3.多个x轴.y轴的柱状图: 学习心得: d3.js入门相对比较困难,一旦掌握了核心思想,不断熟悉AP ...

  8. Cognos 11.0快速开发指南 Ⅱ

    1.    创建报表 在创建好数据源之后,我们就可以创建报表了,报表的开发是浏览器中完成的,这里我选用了chrome浏览器,在地址栏输入:http://localhost:80/ibmcognos ( ...

  9. Maven简述

    一.前言     以前做过的项目中,没有真正的使用过Maven,只知道其名声很大,其作用是用来管理jar 包的.最近一段时间在项目过程中使用Maven,用Maven构建的web项目,其项目结构只停留在 ...

  10. C++学习日记(二)————初始字符串类型

    使用频率高,但操作复杂的数据有哪些? 做下总结: int; double;float;char;bool这些类型用的比较频繁,但并不复杂.但对于字符串来说(char数组)用的频繁但操作又复杂,只能用一 ...