什么是数据库驱动?有哪几种jdbc驱动

简介: 什么是数据库驱动?有哪几种jdbc驱动

什么是数据库驱动

数据库软件可以由各个数据库厂商提供,我们熟知的mysql,oracle,sqlserver,access,db2等等都是由不同的厂商提供的,既有不同的开发商开发,因此对于数据库软件的实现过程都不尽相同。


应用程序也可以由不同的人进行开发,写代码实现的过程也不尽相同(因此应用程序和数据库软件之间属于many-to-many的关系)。如果想让应用软件和数据库之间能够产生交互,并且尽可能相互适应。换句话说,一个代码在连接任何数据库是都不用更改,就可以随意切换,一个数据库软件也可以和各种开发人员实现的应用程序无缝连接。这个时候就需要定义应用程序和数据库之间进行交互的规则(标准)。这个标准称之为驱动(Driver)。


开发商在开发数据库软件时提供针对于Driver标准的实现,应用开发人员再开发时,通过标准Driver的调用转换成对实际数据库Driver程序的调用。


因此,每一款数据库软件在实现时都会提供相对于Driver标准的一些列接口和类的实现。更明确一点说我们需要获取人家提供的这个驱动包才能保证程序和数据库之间的连接。


java.sql.Driver


四种JDBC驱动:

1.JDBC-ODBC桥加ODBC


作为jdk1.1后的一部分,是sun.jdbc.odbc包的一部分


将jdbc调用转化为odbc调用,性能低,要求用户在终端上安装相应驱动


适用于快速的原型开发,没有提供JDBC驱动的数据库如Access


java --->JDBC-ODBC桥---->ODBC --->数据库厂商代码


2.部分java实现的本地JDBC驱动


相对1有所提高,直接利用开发商提供的本地库来直接与数据库通信


java ----type2 ----native Database library ----数据库厂商代码


3.jdbc网络纯java驱动程序


将JDBC调用转换为DBMS无关的网络协议,然后由某个服务器将其转换为相应的DBMS调用


java --->type3 ---java middleware --->jdbc Driver ----->数据库厂商代码


具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的


4.本地协议纯java驱动程序


将jdbc调用直接转化成响应的DBMS调用


最高的性能,通过自己的本地协议直接与数据库引擎通信,具备internet的装配能力


目前java程序连接数据库都是用纯jdbc驱动。


使用纯jdbc驱动需要先获取数据库厂商提供的驱动包:


针对于oracle数据库,可以从安装目录下的app\oracle\product\10.2.0\server\jdbc\lib下找一个叫做ojdbc14.jar。


根据jdbc版本的更新换代,现在最高的jdbc版本为4.0的版本。可以单独获取jar包,例如获取ojdbc5.jar,ojdbc6.jar.


相关文章
|
6月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
6月前
|
Java 数据库连接
【YashanDB知识库】JDBC驱动的date类型字段结果集调用getString方法只返回日期,不返回时分秒
【YashanDB知识库】JDBC驱动的date类型字段结果集调用getString方法只返回日期,不返回时分秒
|
6月前
|
Oracle Java 关系型数据库
【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle
【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle
|
6月前
|
SQL Java 中间件
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
在BeetISQL 2.13.8版本中,客户使用batch insert向yashandb表插入数据并尝试获取自动生成的sequence id时,出现类型转换异常。原因是beetlsql在prepareStatement时未指定返回列,导致yashan JDBC驱动返回rowid(字符串),与Java Bean中的数字类型tid不匹配。此问题影响业务流程,使无法正确获取sequence id。解决方法包括:1) 在batchInsert时不返回自动生成的sequence id;2) 升级至BeetISQL 3,其已修正该问题。
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
|
5月前
|
Java 数据库连接 数据库
YashanDB JDBC驱动应用示例
本文来自YashanDB官网,主要介绍YashanDB的JDBC驱动安装与基础操作示例。内容涵盖示例环境(JDBC驱动、JDK、JRE版本要求)、安装前准备(JDK/JRE安装与验证)、JDBC驱动安装步骤(目录创建、软件包上传与环境配置)以及Java文件编写(连接数据库代码示例与编译执行方法)。通过本文,开发者可快速上手使用YashanDB的JDBC驱动开发应用。
|
6月前
|
负载均衡 Java 数据库连接
小特性 大用途 —— YashanDB JDBC驱动的这些特性你都get了吗?
在现代数据库应用场景中,系统的高可用性和负载均衡是确保服务稳定性的基石。YashanDB JDBC驱动通过其创新的多IP配置特性,为用户带来了简洁而强大的解决方案,以实现数据库连接的高可用性和负载均衡,满足企业级应用的高要求。
|
6月前
|
SQL druid Java
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常
|
6月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
6月前
|
Java 数据库连接
【YashanDB知识库】Springboot启动找不到崖山jdbc驱动的问题处理
本文来自YashanDB官网,主要解决SpringBoot应用启动时出现“找不到崖山JDBC驱动”的问题,尽管lib目录下已有yashandb-jdbc-1.6.9.jar文件。错误信息显示`java.lang.ClassNotFoundException: com.yashandb.jdbc.Driver`。解决方案为:通过`which java`等命令定位Java安装路径,将驱动jar包复制到JRE的`lib/ext`目录下,最后重启应用即可。
|
6月前
|
SQL druid Java
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常
【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常

热门文章

最新文章