JDBC详解——JDBC常用接口

JDBC:

JDBC的全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的Java API。程序可以通过JDBC API连接到关系数据库,并使用结构化查询语言(SQL,数据库标准的查询语言)来完成对数据库的查询和更新。

JDBC执行事件:

建立与数据库的连接;

执行SQL语句;

获得SQL语句的执行结果。

JDBC驱动程序:

数据库驱动程序时JDBC程序和数据库之间的转换层,数据库驱动程序负责将JDBC调用映射成特定的数据库调用。下图为数据库访问示意图:

大部分数据库系统,都有对应的JDBC驱动程序,当需要连接某个特定的数据库时,必须有对应的数据库驱动程序。

JDBC驱动通常有如下四种类型:

1、JDBC—ODBC桥,这种驱动是最早实现的JDBC驱动程序,主要为了快速推广JDBC,目前已废除。

2、直接将JDBC API映射成数据库特定的客户端API。这种驱动包含特定数据库的本地代码,用于访问特定数据库的客户端。

3、支持三层架构的JDBC访问方式,主要用于Applet阶段,通过Applet访问数据库。

4、纯Java的,直接与数据库实例交汇。这种驱动是智能的,他知道数据库的底层协议,是目前最流行的JDBC驱动。

JDBC常用接口详解:

DriverManager:

用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象,该对象包含如下方法:

public static synchronized Connection getConnection(String URL,String user,String password) throws SQLException,通过该方法可以获取URL对应的数据库的连接。

Connection:

代表数据库连接对象,每个Connection代表一个物理连接会话。想要访问数据库,必须先获得数据库连接。常用方法如下:

Statement createStatement() throws SQLException:

该方法返回一个Statement对象。

PreparedStatement prepareStatement(String sql) throws SQLException:

该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行编译。

CallableStatement prepareCall(String sql) throws SQLException:

该方法返回CallableStatement对象,用于调用存储过程。

上面三个方法都返回用于执行SQL语句的Statement对象,PreparedStatement、CallableStatement是Statement的子类,只有获得了Statement之后才能执行SQL语句。

Statement:

用于执行SQL语句的工具接口,该对象既可用于执行DDL、DCL语句,也可用于执行DML语句,还可以用于执行SQL查询,返回查询到的结果集。接口常用方法如下:

ResultSet executeQuery(String sql)throws SQLException:

该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。该方法只能用于执行查询语句。

int executeUpdate(String sql)throws SQLException:

该方法用于执行DML语句,并返回受影响的行数,同时也可以用于执行DDL语句,执行后返回0。

boolean execute(String sql)throws SQLException:

该方法可执行任何SQL语句。如果执行后第一个结果未ResultSet对象,则返回true,如果执行后第一个结果未受影响的行数或没有任何结果,则返回false。

PreparedStatement:

预编译的Statement对象,是Statement的子接口,它允许数据库预编译SQL语句(这些SQL语句通常都带有参数),以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好。相对于Statement而言,使用PreparedStatement执行SQL语句时,无需再传入SQL语句,只要为预编译的SQL语句传入参数值即可。它比Statement多了如下方法:

void setXxx(int parameterIndex,Xxx value):

该方法根据参数值的类型不同,需要使用不同的方法。传入的值根据索引传给SQL语句中指定位置的参数。

ResultSet:

结果集对象,该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。它提供了如下常用方法来移动记录指针:

void close():

释放ResultSet对象。

boolean absolute(int row):

将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row。如果移动后的记录指针指定一条有效记录,则该方法返回true。

void beforeFirst():

将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态——记录指针的起始位置位于第一行之前。

void afterLast():

将ResultSet的记录指针定位到最后一行之后。

boolean first():

将ResultSet的记录指针定位到首行,如果移动后的记录指针指向一条有效记录,则方法返回true。

boolean previous():

将ResultSet的记录指针定位到上一行,如果移动后的记录指针指向一条有效记录,则方法返回true。

boolean next():

将ResultSet的记录指针定位到下一行,如果移动后的记录指针指向一条有效记录,则方法返回true。

boolean last():

将ResultSet的记录指针定位到最后一行,如果移动后的记录指针指向一条有效记录,则方法返回true。

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值