【技术实现步骤摘要】
一种同一数据库多个版本JDBC驱动共存方法和系统
本专利技术涉及数据访问
,具体涉及一种同一数据库多个版本JDBC驱动共存方法和系统。
技术介绍
java数据库连接(JavaDataBaseConnectivity,简写为JDBC)是Java编程语言访问数据库的规范,它提供了一套完整的、独立于任何特定数据库的编程接口,使得java程序能够编写通用的数据库操作程序,而无需绑定到每种数据库不同的编程接口。不同的数据库厂商发布数据库时会同时发布实现了JDBC接口的驱动程序,一般都是以jar包的形式提供。JDBC的工作原理可参考图1:java应用程序访问数据库时,一般需要将jar包放到java虚拟机(JavaVirtualMachine,简写为jvm)的classpath路径上,这样java应用程序启动后,java虚拟机可以自动通过classpath加载jar包中的驱动类,并将驱动类实例注册到JDBC驱动管理器(JDBCDriverManager)中。java应用程序再通过驱动管理器获取到某个特定数据库的连接对象,并通过该连接对象调用JDBC接口(JDBCD ...
【技术保护点】
1.一种同一数据库多个版本JDBC驱动共存方法,其特征在于,包括:通过URLClassLoader动态加载驱动类;通过动态加载的驱动类,动态创建驱动类实例;使用DriverAdpter类封装原始的所述驱动类实例以得到DriverAdpter类实例,并将所述DriverAdpter类实例注册到驱动管理器;通过所述驱动管理器中注册的DriverAdpter类实例创建数据库的连接对象;从所述驱动管理器中注销当前的DriverAdpter类实例,以便进行下个版本驱动的动态加载;其中,对于多个不同版本的JDBC驱动,分别使用不同的URLClassLoader进行驱动类的加载,以便创建 ...
【技术特征摘要】
1.一种同一数据库多个版本JDBC驱动共存方法,其特征在于,包括:通过URLClassLoader动态加载驱动类;通过动态加载的驱动类,动态创建驱动类实例;使用DriverAdpter类封装原始的所述驱动类实例以得到DriverAdpter类实例,并将所述DriverAdpter类实例注册到驱动管理器;通过所述驱动管理器中注册的DriverAdpter类实例创建数据库的连接对象;从所述驱动管理器中注销当前的DriverAdpter类实例,以便进行下个版本驱动的动态加载;其中,对于多个不同版本的JDBC驱动,分别使用不同的URLClassLoader进行驱动类的加载,以便创建不同版本的驱动类实例。2.根据权利要求1所述的同一数据库多个版本JDBC驱动共存方法,其特征在于,在所述从所述驱动管理器中注销当前的DriverAdpter类实例之后,所述方法还包括:通过各连接对象操作对应版本驱动下的数据库;对于完成数据库操作的对应版本,关闭并释放对应的连接对象。3.根据权利要求1所述的同一数据库多个版本JDBC驱动共存方法,其特征在于,所述通过所述驱动管理器中注册的DriverAdpter类实例创建数据库的连接对象,具体为:所述驱动管理器调用已经注册的DriverAdpter类实例的acceptsURL方法;如果acceptsURL方法返回true且通过类加载器的检查,则利用对应的DriverAdpter类实例创建数据库的连接对象。4.根据权利要求3所述的同一数据库多个版本JDBC驱动共存方法,其特征在于,所述类加载器的检查具体为:所述驱动管理器检查AppClassLoader是否能够加载到由URLClassLoader动态加载的驱动类,如果不能加载则报错;如果能加载则通过对类加载器的检查。5.根据权利要求4所述的同一数据库多个版本JDBC驱动...
【专利技术属性】
技术研发人员:梅纲,付铨,高东升,付博文,
申请(专利权)人:武汉达梦数据库有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。