通过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。

目录
相关文章
|
13天前
|
存储 安全 数据库
数据库的索引都有哪些类型?如何选择?
【8月更文挑战第17天】数据库的索引都有哪些类型?如何选择?
30 0
|
16天前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
9天前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
7天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)
在数字化时代背景下,本文详细介绍了如何使用Spring Boot框架结合Vue.js技术栈,实现一个前后端分离的考试管理系统。该系统旨在提升考试管理效率,优化用户体验,确保数据安全及可维护性。技术选型包括:Spring Boot 2.0、Vue.js 2.0、Node.js 12.14.0、MySQL 8.0、Element-UI等。系统功能涵盖登录注册、学员考试(包括查看试卷、答题、成绩查询等)、管理员功能(题库管理、试题管理、试卷管理、系统设置等)。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的前后端分离的考试管理系统(含教程&源码&数据库数据)
|
10天前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
23 1
|
12天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之如何判断数据库类型是否支持整库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
12天前
|
JavaScript Java Maven
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和Vue.js实现的在线求职平台。该平台采用了前后端分离的架构,使用Spring Boot作为后端服务
毕设项目&课程设计&毕设项目:springboot+vue实现的在线求职管理平台(含教程&源码&数据库数据)
|
17天前
|
缓存 NoSQL Redis
一天五道Java面试题----第九天(简述MySQL中索引类型对数据库的性能的影响--------->缓存雪崩、缓存穿透、缓存击穿)
这篇文章是关于Java面试中可能会遇到的五个问题,包括MySQL索引类型及其对数据库性能的影响、Redis的RDB和AOF持久化机制、Redis的过期键删除策略、Redis的单线程模型为何高效,以及缓存雪崩、缓存穿透和缓存击穿的概念及其解决方案。
|
17天前
|
SQL 存储 Java
完整java开发中JDBC连接数据库代码和步骤
该博客文章详细介绍了使用JDBC连接数据库的完整步骤,包括加载JDBC驱动、提供连接URL、创建数据库连接、执行SQL语句、处理结果以及关闭JDBC对象的过程,并提供了相应的示例代码。
|
12天前
|
存储 Kubernetes NoSQL
在K8S中,etcd是什么类型数据库?
在K8S中,etcd是什么类型数据库?
下一篇
云函数