MySQL数据库与JDBC编程(一)

1.1 JDBC简介

JDBC定义:全称是Java Database Connectivity,即数据库连接,是一种可以执行SQL语句的Java API

程序可以通过JDBC连接到关系数据库,并且使用结构化语言(SQL,数据库标准的查询语言)来完成对数据库的查询、更新。JDBC开发的数据库应用可以跨平台运行,可以跨数据库运行。Java语言的各种跨平台特性,是因为Java为不同的操作系统提供不同的虚拟机;同理,为了使JDBC程序可以跨平台,则是不同的数据库厂商提供相应的驱动程序。

通过JDBC驱动的转换,才使得使用相同的JDBC API编写的程序,可以在不同的数据库系统运行良好。

JDBC的三个基本工作:①建立与数据库的连接;②执行SQL语句;获得SQL语句的执行结果。

1.2 JDBC的驱动程序

JDBC程序和数据库之间的转换层是数据库驱动程序,其作用是负责将JDBC调用映射成特定的数据库调用。

Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥、本地API驱动、网络协议驱动和本地协议驱动。

①JDBC驱动类型一、JDBC-ODBC

这种类型的驱动实际是把所有 JDBC的调用传递给ODBC ,再由ODBC调用本地数据库驱动代码只要本地机装有相关的ODBC驱动那么采用JDBC-ODBC桥几乎可以访问所有的数据库JDBC- ODBC方法对于客户端已经具备ODBC driver的应用还是可行的。(本地数据库驱动代码是指由数据库厂商提供的数据库操作二进制代码库,在Java 8中已经被删除了)

但是,由于JDBC-ODBC先调用ODBC再由ODBC去调用本地数据库接口访问数据库所以执行效率比较低对于那些大数据量存取的应用是不适合的而且这种方法要求客户端必须安装ODBC 驱动所以对于基于internet的应用也是不合适的因为,你不可能要求所有客户都能找到ODBC driver

②JDBC驱动类型二、本地API驱动

本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库

这种驱动比起JDBC-ODBC桥执行效率大大提高了但是它仍然需要在客户端加载数据库厂商提供的代码库这样就不适合基于internet的应用并且执行效率比起3、4型的JDBC驱动还是不够高

③JDBC驱动类型三、网络协议驱动

这种驱动实际上是根据我们熟悉的三层结构建立的。主要作用于Applet阶段,通过Applet访问数据库。

JDBC先把对数局库的访问请求传递给网络上的中间件服务器中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器如果中间件服务器也是用java那么在在中间层也可以使用1、2JDBC驱动程序作为访问数据库的方法. 网络协议驱动间件服务器数据库Server。

由于这种驱动是基于server所以它不需要在客户端加载数据库厂商提供的代码库而且执行效率和可升级性方面是比较好的因为大部分功能实现都在server,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中.但是这种驱动在中间件层仍然需要有配置其它数据库驱动程序并且由于多了一个中间层传递数据,它的执行效率还不是最好.

④JDBC驱动类型四、本地协议驱动

这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求由于4型驱动写的应用可以直接和数据库服务器通讯这种类型的驱动完全由java实现因此实现了平台独立性本地协议驱动-数据库Server。

由于这种驱动不需要先把JDBC的调用传给ODBC或本地数据库接口或者是中间层服务器所以它的执行效率是非常高的而且它根本不需要在客户端或服务器端装载任何的软件或驱动这种驱动程序可以动态的被下载但是对于不同的数据库需要下载不同的驱动程序

总结以上对四种类型的JDBC驱动做了一个说明.那么它们适合那种类型的应用开发呢?

通常建议选择本地协议驱动,这样可以避开本地代码,减少应用开发的复杂性,也减少冲突和出错的可能;如果对性能要求较为严格,则可考虑使用本地API驱动,但是会增加编程和维护的困难。

对于那些需要大数据量操作的应用程序则应该考虑2、3、4型驱动internet方面的应用可以考虑2型驱动但是由于3、4型驱动在执行效率上比2型驱动有着明显的优势而且目前开发的趋势是使用纯java。所以3、4型驱动也可以作为考虑对象

至于基于internet方面的应用就只有考虑3、4型驱动了3型驱动可以把多种数据库驱动都配置在中间层服务器所以3型驱动最适合那种需要同时连接多个不同种类的数据库, 并且对并发连接要求高的应用;4型驱动则适合那些连接单一数据库的工作组应用。

1.3 JDBC与ODBC

ODBC开放数据库互连(Open Database ConnectivityODBC)是微软公司开放服务结构(WOSAWindows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。

ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。开放数据库互连(ODBC)是Microsoft提出的数据库访问接口标准。开放数据库互连定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是MicrosoftODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写的。)ODBC规范后来被X/OPENISO/IEC采纳,作为SQL标准的一部分.

1:两者之间的联系

JDBCODBC都是用来连接数据库的启动程序,JDBCODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。

2:两者之间的区别

⑴JDBCODBC更简单、直观

ODBC中一个的简单的查询,也需求分为好几块内容;而在ODBC驱动程序内部再去整合,做一些复杂的操作。这不仅降低了数据库启动程序的性能,而且也给程序开发者开发实际运用程序带来了确定的负面效果。

JDBC数据库启动程序在设计的时间就包含了大部份基本数据操作功能,为此在编写一些常规的数据库操作语句时,如查询、更新等等,其所需求的源代码比 ODBC要少的多。故从这方面来说,JDBC数据库启动程序要比ODBC简易理解。

⑵JDBC数据库驱动程序是面向对象的

JDBC完全遵循Java语言的优良特性。通常情况下,只要有Java功能需设计基础的用户都能在最短时间内了解JDBC驱动程序的架构,较量简易上手,能轻而易举的开发出强悍的数据库实际运用程序。而ODBC的话,由于其内部功能复杂,源代码编写要求高。

⑶JDBC的移植性要比ODBC要好,安全性更高

通常情况下,安装完ODBC驱动程序之后,还需求经过确定的配置才能够应用。而不相同的配置在不相同数据库服务器之间不能够通用。也那是说,装一次需求配置一次。但是JDBC数据库驱动程序则不相同。假如采用JDBC数据库驱动程序的话,则只需要选取适当的 JDBC数据库驱动程序,就不需要额外的配置。在安装过程中,JDBC数据库驱动程序会自己完成有关的配置。为此JDBC的移植性要比ODBC要好。

猜你喜欢

转载自www.cnblogs.com/tianliang94/p/10707466.html