通过使用JDBC,就可以使用同一种API访问不同的数据库系统。开发人员面向JDBC API编写应用程序,然后根据不同的数据库,使用不同的数据库驱动即可。
Java语言的各种跨平台特性,都采用了相似的结构,因为它们都需要让相同的程序在不同的平台上运行,所以都需要中间的转换程序(为实现Java程序的跨平台性,Java为不同的操作系统提供了不同的虚拟机)。同样为了实现JDBC程序跨平台,则需要不同的数据库厂商提供相应得驱动程序。
下图为JDBC驱动示意图:
正是通过JDBC驱动的转换,才使得用相同JDBC API编写程序,在不同的数据库上运行良好。Sun提供的JDBC可以完成以下三个基本工作:
1、建立与数据库的连接
2、执行SQL语句
3、获取SQL语句的执行结果
数据库驱动程序是JDBC程序和数据库之间的转换层,数据库驱动程序负责将JDBC调用映射成特定的数据库调用。
下图显示了JDBC访问的示意图
大部分数据库系统,例如Oracle和Sybase等,都有相应的JDBC驱动程序,当需要连接某个特定的数据库时,必须有相应的数据库驱动程序。
JDBC驱动程序有4中类型:
1、JDBC桥,这种驱动是最早实现的JDBC驱动程序,主要目的是为了快速推广JDBC。这种驱动将JDBC API映射到ODBC API。这种方式在Java 8已经被删除了。
2、直接将JDBC API映射成数据库特点的客户端API。这种驱动包含特定数据库的本地代码,用于访问特定数据库的客户端。
3、支持三层结构的JDBC的访问方式,主要用于Applet阶段,通过Applet访问数据库。
4、纯Java的,直接与数据库实例交互。这种驱动是智能的,它知道数据库使用的底层的协议。这种驱动是目前最流行的JDBC驱动。
通常建议选择第4种JDBC驱动,这种驱动避开了本地代码,减少了应用开发的复杂性,也减少了产生冲突和出错的可能。如果对性能有严格要求,则可以考虑第2种JDBC驱动,但使用这种驱动,则势必增加编码和维护的困难。
原文:https://www.cnblogs.com/weststar/p/12641070.html