通过JDBC检测远端数据库类型(源码)

简介:

 工作中经常有告诉了一个数据库服务器JDBC连接信息,而不说数据库版本的,以致开发时不敢用该种数据库最新的特性。我写了一段小程序,用于探测远端数据库服务器类型:

 

import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.SQLException; public class DBVersionDetector { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException { //Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance(); //Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "oral", "oral"); Connection conn = DriverManager.getConnection("jdbc:db2://localhost:50000/sample", "db2admin", "db2admin"); DatabaseMetaData meta = conn.getMetaData(); System.out.println("URL:/t" + meta.getURL()); System.out.println("UserName:/t" + meta.getUserName()); System.out.println("DatabaseProductName:/t" + meta.getDatabaseProductName()); System.out.println("DatabaseMajorVersion:/t" + meta.getDatabaseMajorVersion()); System.out.println("DatabaseMinorVersion:/t" + meta.getDatabaseMinorVersion()); System.out.println("DatabaseProductVersion:/t" + meta.getDatabaseProductVersion()); System.out.println("DriverName:/t" + meta.getDriverName()); System.out.println("DriverMajorVersion:/t" + meta.getDriverMajorVersion()); System.out.println("DriverMinorVersion:/t" + meta.getDriverMinorVersion()); System.out.println("DriverVersion:/t" + meta.getDriverVersion()); System.out.println("JDBCMajorVersion:/t" + meta.getJDBCMajorVersion()); System.out.println("JDBCMinorVersion:/t" + meta.getJDBCMinorVersion()); conn.close(); } }

 

运行结果如下(示例):

 

URL: jdbc:db2://localhost:50000/sample UserName: db2admin DatabaseProductName: DB2/NT DatabaseMajorVersion: 9 DatabaseMinorVersion: 7 DatabaseProductVersion: SQL09070 DriverName: IBM DB2 JDBC Universal Driver Architecture DriverMajorVersion: 3 DriverMinorVersion: 57 DriverVersion: 3.57.82 JDBCMajorVersion: 3 JDBCMinorVersion: 0

从这里能看出这是一个DB2 v9.7 for Windows的服务器,支持JDBC3.0。

目录
相关文章
|
3月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
39 4
|
24天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
29天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
2月前
|
供应链 数据库 开发者
深入了解数据库锁:类型、应用和最佳实践
深入了解数据库锁:类型、应用和最佳实践
|
6天前
|
SQL druid Java
JDBC&数据库连接池
JDBC&数据库连接池
|
7天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
24天前
|
存储 人工智能 机器人
【python毕业设计】基于Python的医院信息管理系统的设计与实现(源码+数据库+毕业论文)【独一无二】
【python毕业设计】基于Python的医院信息管理系统的设计与实现(源码+数据库+毕业论文)【独一无二】
|
28天前
|
SQL Java 数据库连接
使用JDBC进行数据库操作:Java Web开发的数据库连接
【4月更文挑战第3天】Java Web开发中,JDBC是与数据库交互的关键,提供统一访问关系型数据库的规范。核心组件包括DriverManager、Connection、Statement和ResultSet。使用流程涉及加载驱动、建立连接、创建Statement、执行SQL及处理结果,最后关闭资源。最佳实践包括使用try-with-resources、PreparedStatement、事务管理等。在Web开发中,JDBC用于用户认证、数据持久化、检索和事务管理。虽然有ORM工具,但掌握JDBC基础仍然重要。
|
2月前
|
安全 Java 数据库连接
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
155 0
|
2月前
|
存储 NoSQL 关系型数据库
四种类型的nosql数据库
随着互联网的发展,传统关系型数据库已经不能满足大数据时代的需求。NoSQL数据库应运而生,它们具有高可扩展性、高性能和高可用性等优点。本文将介绍四种主要类型的NoSQL数据库,分别是键值存储数据库、文档存储数据库、列存储数据库和图形数据库。这些数据库在不同的场景下有着不同的应用,可以满足不同的需求。