JAVA之数据库JDBC学习心得

本文介绍了JDBC驱动的背景和类型,强调了其作为统一API的角色,允许开发者无需关注底层数据库协议。JDBC/ODBC、部分本地代码、纯Java客户端类库和纯Java驱动是四种主要类型的JDBC驱动。文章还提到了数据库中的关键类,如Connection,它是通过DriverManager和数据库驱动程序交互来创建的,用于生成Statement对象进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC驱动的背景

      设计之初,JAVA的设计人员希望采用纯JAVA即可实现与所有的数据库进行通信,但是后来证明这是无法实现的,因为不同的数据库厂商有不同的传输协议,java无法满足同时实现所有的协议,并且当数据库厂商对协议一旦有更改,java则会随着更改。因此java的开发人员和数据库厂商的人员都希望java提供一套统一的API,可以访问任何数据库,同时提供一个数据库连接管理器,以便不同的数据库厂商可以将自己的数据库连接器加入其中,这样对于开发人员来说,只需要关心,上层访问数据库的API,无需关心底层如何和数据库通信,而数据库厂商则只需要实现自己数据库连接器的协议的通信即可,这里就产生了两套API,一套是给开发人员调用的,像我们平时使用的Connection,STatement这些属于开发人员使用的API,这些API对底层数据库是透明的。还有一套API则是由数据库开发商实现的,实现之后也就是我们现在的JDBC驱动程序,像MYSQL的Connector/J,oracle公司的ojdbc14.jar等。java的驱动管理器和这些驱动程序通信,这些具体的驱动程序则和数据库进行通信。

JDBC驱动程序的几种类型

1.JDBC/ODBC 类型,这种最典型的就是sqlserver的JDBC驱动程序包,开发过的人都知道里面有一个关于odbc的jar包,采用的就是JDBC/ODBC这种方式实现的

2.是由JAVA和部分本地代码组成的,很少见过

3.驱动程序由纯java客户端类库,他使用一种与具体数据库无关的协议将数据库请求发送至服务器构建,然后由构建将数据库请求翻译成特定的数据库类型,这种有点类似hibernate的SQLDialect(SQL方言)

4.驱动类是纯JAVA类库,直接将sql请求翻译成特定的数据库协议,如:connector/J

 

数据库中的常用类

Connection :该类由DriverManager产生,DriverManager首先加载数据库驱动程序,比如:com.mysql.jdbc.Driver ,这里可以采用:Class.forName("com.mysql.jdbc.Driver");将该驱动程序注册到驱动管理器中,也可以采用:System.setPropertity("jdbc.driver","com.mysql.jdbc.Driver"), 然后驱动管理器通过 Connection con = DriverManager.getConnection(url,username,password);获取到一个数据库的连接,有了这个连接,则就可以根据这个连接创建出操作数据库的Statement了.

一个Connection可以创建一个或者多个Statement对象,但是一个Statement只能大家一个resultSet,且不同的数据库驱动程序对同一个Connection激活的Statement是不一样的,可以通过DataBaseMata类的getMaxStatements获取支持的活动Statement个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值