oracle jdbc驱动_JDBC(1)

JDBC

JDBC是连接Java程序和数据库的纽带,JDBC的实现封装了与各种数据库服务器通信的细节。Java程序通过JDBC API来访问数据库。其中JDBC API位于java.sql包中,javax.sql包中包含了一些提供高级特性的API。

dd891f671670650e9bd38d694f98c787.png

JDBC的实现包含三个部分:

  • JDBC驱动管理器:java.sql.DriverManager类。由Oracle公司实现,负责注册特定JDBC驱动器,以及根据特定驱动器建立与数据库的连接。

  • JDBC驱动器API:由Oracle公司制定,其中最主要的的接口是java.sql.Deriver接口。

  • JDBC驱动器:由数据库供应商或者其他第三方工具提供商创建,也称为JDBC驱动程序。JDBC驱动器实现了JDBC驱动器API负责与特定的数据库连接,以及处理通讯细节。JDBC驱动器可以注册到JDBC驱动管理器中。

两套API:

  • JDBC API:Java应用程序通过它来访问各种数据库

  • JDBC驱动器API:当数据库供应商为特定数据库创建JDBC驱动时,该驱动必须是按JDBC驱动器API

  • c1a70a05ba741bbf27c66071c8502939.png

Java应用程序如果希望访问某种数据库,必须先获得相应的JDBC驱动器的类库。然后把它注册到JDBC驱动管理器中。Java应用程序必须通过JDBC驱动器来访问数据库,Java应用程序通过java.sql.DriverManager类与JDBC驱动器进行通信。应用程序只需要和JDBC API打交道,JDBC API依赖DriverManager来管理JDBC驱动程序。假如应用程序需要向一个Mysql数据库提交一条Sql语句,DriverManager类就会委派特定的MySql的驱动来执行这个任务;同理,假如应用程序需要向一个Oracle数据库提交,则会委派Oracle的驱动执行这个任务。

7d20238d73d789ee99d8fb3c800e15cf.png

当Java应用程序希望访问某种数据库时,需要先向DriverManager类注册该数据库的驱动器类。 

Java.sql包中的接口和类

JDBC API主要位于java.sql包中,关键的接口与类包括:

  • Driver接口和DriverManager类:前者表示驱动,后者表示驱动管理器。

  • Connection接口:表示数据库连接。

  • Statement接口:负责执行SQL语句

  • PreparedStatement接口:负责执行预准备的SQL语句

  • CallableStatement接口:负责执行SQL存储过程

  • ResultSet接口:表示SQL查询语句返回的结果集

1.Driver接口和DriverManager类

所有JDBC驱动器都必须实现Driver接口,在编写访问数据库的Java程序时,必须把特定数据库的JDBC驱动器类库加入到classpath中。

DriverManager类用来建立和数据库的连接和管理JDBC驱动器,DriverManager类的方法都是静态的主要包括:

  • registerDriver(Driverdriver):在DriverManager中注册JDBC驱动

  • deregisterDriver(Driverdriver): 在DriverManager中注销JDBC驱动

  • getConnection(Stringurl,String user,String pwd):建立数据库连接,并返回表示数据库连接的Connection对象。

2.Connection接口

connecton接口代表Java程序和数据库的连接,Connection接口主要包括以下方法:

  • createStatement():创建并返回Satement对象

  • prepareStatement(Stringsql):创建并返回PreparedStatement对象

3.Statement接口

Statement接口提供了三个执行SQL语句的方法:

  • execute(String sql):执行各种SQL。该方法返回boolean类型的值。

  • executeUpdate(Stringsql):执行SQL的 insert\update\delete语句。该方法返回一个int类型,表示数据库中受影响的行数。

  • excuteQuery(Stringsql):执行SQL的select语句。该方法返回一个表示查询结果的ResultSet对象。 

4.  PreparedStatement接口

PreparedStatement接口继承了Statement接口,PreparedStatement用来执行预准备的SQL语句。在访问数据库的时候可能遇见这种情况,某条SQL 语句被多次执行,其中仅有参数不同:

以上SQL语句的格式为:

这种情况下使用PreparedStatement来执行SQL有以下优点:

  • 简化程序

  • 提高访问数据库的性能。PreparedStatement执行预准备的SQL语句,数据库只需要对这种SQL语句编译一次,然后就可以多次执行,

  1. 5.  ResultSet接口

ResultSet接口表示select查询语句的得到的结果集。调用ResultSet对象的next()方法可以使游标定位到下一条记录。调用getXXX()方法,可以获得记录中某个字段的值。

事务处理

在Connection接口中提供了3个控制事务的方法:

  • setAutoCommit(boolean autoCommit):设置是否自动提交事务

  • commit():提交事务

  • rollback():回滚事务

在JDBC API 中,默认情况下为自动提交事务。也就是说,每一条操作数据库的SQL语句代表一个事务,如果操作成功,数据库将自动提交事务,否则就自动撤销事务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值