Atitit.自定义jdbc驱动 支持jsql
1. 为什么需要自定义驱动1
1.1. 透明分库分表1
1.2. 自定义数据库的接口。比如大数据文档文件类型的数据库,数据存储引擎2
2. 整个文章分为3个部分: 2
2.1. 1. 应用程序连接数据库的简单方法。2
2.2. 2. 使用自定义的JDBC驱动编译、部署、访问数据。2
2.3. 3. 通过高级的日志功能、连接池、预处理数据集增强自定义的JWDriver的性能。2
3. JDBC驱动的结构 Type1---Type4 2
4. Type1--4区别4
5. 参考4
1. 为什么需要自定义驱动
1.1. 透明分库分表
通过以上的分析我们可以通过对JDBC进行包装就能做到多数据源,甚至可以在JDBC层上进行分库分表。这样做的好处是对于上层开发人员是透明的。
1.2. 自定义数据库的接口。比如大数据文档文件类型的数据库,数据存储引擎
2. 整个文章分为3个部分:
2.1. 1. 应用程序连接数据库的简单方法。
2.2. 2. 使用自定义的JDBC驱动编译、部署、访问数据。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
2.3. 3. 通过高级的日志功能、连接池、预处理数据集增强自定义的JWDriver的性能。
3. JDBC驱动的结构 Type1---Type4
JDBC为通用的数据库访问提供了一种程序级的接口。在一个特定的数据库环境下使用JDBC API你需要一个JDBC驱动来完成他们直接的协调运行。JDBC被分为四种类型或者说层次。每一个类型都有一个JDBC实现,以便满足日益增加的对平台独立性、执行效率和可管理性的要求。这四种类型分别是:
Type1:JDBC-ODBC(开方数据库连接)桥。
Type2:本地API,部分的Java驱动。
Type3:网络协议,完全的Java 驱动。
Type4:本地协议,完全的Java驱动。
所有的JDBC驱动都要实现下面四个JDBC类:Driver、Connection、Statement和ResultSet。包含在java.sql包种DriverManager类用于管理被加载的驱动。客户端应用程序通过它获得数据库连接。JDBC的Driver通过下面的方法加载:
Class.forName("com.jw.client.JWDriver");
当这个Driver被加载时它的staic部分的代码就会执行,通过DriverManager注册这个驱动。现在,只要客户端应用程序通过DriverManger.getConnection()方法,DriverManager就会转而调用nnect()方法。每一个JDBC驱动必须实现java.sql.Driver接口。所以,JDBC驱动的nnect方法会首先检测当前的驱动Url是否正确,然后会通过connet()方法返回一个Connection对象。
4. Type1--4区别
Type1 JDBC-ODBC桥
作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分
Application--->JDBC-ODBC Bridge(Type1 jdbc driver)---->JDBC-ODBC Library--->ODBC Driver-->Database
适用于快速的原型系统,没有提供JDBC驱动的数据库如Access
ype2 JAVA to Native API
利用开发商提供的本地库来直接与数据库通信。
Application--->JDBC Driver(Type2 jdbc driver)---->Native Database library---->Database
比Type1性能略好。
Type3 Java to net
Application--->Jdbc Driver(Type3 jdbc driver)----->java middleware--->JDBC Driver---->Database
具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。
Type4 JAVA to native dababase
Application--->Jdbc driver(type4 jdbc driver)----->database engine--->database
最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。
5. 参考
[转载]如何写自己的Type3 JDBC 驱动-dinner1007-ITPUB博客.htm
浅谈4种类型的JDBC驱动程序.htm
参照Mysql JDBC 驱动源码实现自定义驱动 - 数据库.htm