第二种驱动程序 JavaApplication->DB Client Library->Database
第二种驱动程序也称为部分 Java 驱动程序,因为它们直接将 JDBC API 翻译成具体数据库的API。数据库客户机应用程序(针对本教程的目的指运行 JVM 的主机)必须有合适的数据库客户机库,该库可能包括已安装的并且可能是正在运行的二进制代码。对于分布式应用程序,这种需求会产生额外的许可证问题,还可能带来可怕的潜在代码分布问题。例如,使用第二种模型将开发者限制在数据库厂商的客户机库支持的客户机平台和操作系统。 
然而,在客户机自身严密控制时,这种模型会有效地工作。这种情况通常出现在公司的 LAN 中。
第三种驱动程序 JavaApplication->Middleware server->database
第三种驱动程序是纯 Java 驱动程序,它将 JDBC API 转换成独立于数据库的协议。JDBC 驱动程序并没有直接和数据库进行通讯;它和一个中间件服务器通讯,然后这个中间件服务器和数据库进行通讯。这种额外的中间层次提供了灵活性:可以用相同的代码访问不同的数据库,因为中间件服务器隐藏了 Java 应用程序的细节。要转到不同的数据库,您只需在中间件服务器上改变参数。(有一点需要注意:中间件服务器必须支持您访问的数据库格式。)
第四种驱动程序 Java Application->database
第四种驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。很多程序员认为这是最好的驱动程序,因为它通常提供了最佳的性能,并允许开发者利用特定数据库的功能。当然,这种紧密耦合会影响灵活性,特别是如果您需要改变应用程序中的底层数据库时。这种驱动程序通常用于 applet 和其它高度分布的应用程序。我的问题是的一种模型JDBC-ODBC大家讨论的比较多,实现也比较简单,但是效率低,对分布支持也低。第二种模型用的也较少。我做的一个网络软件似乎用第三种模型较好,就是有中间件的那种,请问这一种模型在数据库服务器方如何具体实现哪,有没有什么数据库直接支持?还是在数据库服务器方要用JSP编写中间层?