Java : Driver (JDBC) - API使用例

Driver (Java SE 19 & JDK 19) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。


概要

すべてのドライバ・クラスが実装しなければならないインタフェースです。

クラス構成

Driver は、JDBCのドライバを表すインタフェースです。

final var driver = DriverManager.getDriver("jdbc:derby:");

System.out.println("-- driver --");
System.out.println("package : " + driver.getClass().getPackage().getName());
System.out.println("major version : " + driver.getMajorVersion());
System.out.println("minor version : " + driver.getMinorVersion());

// 結果
// ↓
//-- driver --
//package : org.apache.derby.iapi.jdbc
//major version : 10
//minor version : 16

補足

  • JDBCのドライバには Apache Derby を使っています。
    Apache Derby は、古い JDK に含まれていたこともありましたが、最新の JDK には含まれていません。

メソッド

boolean acceptsURL (String url)

指定されたURLに接続できるとドライバが判断するかどうかを取得します。

final var protocol = "jdbc:derby:";
final var driver = DriverManager.getDriver(protocol);

final var path = Path.of("R:", "java-work", "db");
final var url = protocol + path;
System.out.println(url); // jdbc:derby:R:\java-work\db

final var ret = driver.acceptsURL(url);
System.out.println(ret); // true
final var driver = DriverManager.getDriver("jdbc:derby:");

final var ret = driver.acceptsURL("abc");
System.out.println(ret); // false

Connection connect (String url, Properties info)

指定されたURLにデータベース接続を試みます。

final var protocol = "jdbc:derby:";
final var driver = DriverManager.getDriver(protocol);

final var path = Path.of("R:", "java-work", "db");
final var url = protocol + path + ";create=true";
System.out.println(url); // jdbc:derby:R:\java-work\db;create=true

try (final var connection = driver.connect(url, new Properties())) {
    final var meta = connection.getMetaData();
    System.out.println(meta.getDriverName()); // Apache Derby Embedded JDBC Driver
    System.out.println(meta.getDriverVersion()); // 10.16.1.1 - (1901046)
}

int getMajorVersion ()

ドライバのメジャー・バージョン番号を取得します。

final var driver = DriverManager.getDriver("jdbc:derby:");
System.out.println(driver.getMajorVersion()); // 10
System.out.println(driver.getMinorVersion()); // 16

int getMinorVersion ()

ドライバのマイナー・バージョンを取得します。

このメソッドの使用例は、getMajorVersion() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

Logger getParentLogger ()

このドライバで使用されるすべてのロガーの親ロガーを返します。

// Apache Derby はロガーはサポートしていないようです。
try {
    final var driver = DriverManager.getDriver("jdbc:derby:");
    final var logger = driver.getParentLogger();
} catch (SQLFeatureNotSupportedException e) {
    System.out.println(e);
}

// 結果
// ↓
//java.sql.SQLFeatureNotSupportedException: Feature not implemented: getParentLogger().

DriverPropertyInfo[] getPropertyInfo (String url, Properties info)

このドライバの有効なプロパティについての情報を取得します。

final var protocol = "jdbc:derby:";
final var driver = DriverManager.getDriver(protocol);

final var values = driver.getPropertyInfo(protocol, new Properties());
for (final var value : values) {
    System.out.println(value.name + " : " + value.description);
}

// 結果
// ↓
//databaseName : Database identity
//encryptionProvider : Cryptographic service provider
//encryptionAlgorithm : Cryptographic algorithm
//encryptionKeyLength : Cryptographic key length
//encryptionKey : External cryptographic key
//territory : Locale for the database
//collation : Collation for character datatypes
//user : User name
//logDevice : Log directory path
//rollForwardRecoveryFrom : Backup path for roll-forward recovery
//createFrom : Backup path for creating database from backup
//restoreFrom : Backup path for restoring database from backup
//bootPassword : Secret cryptographic key
//password : User password
//shutdown : Shut down Derby
//deregister : Deregister AutoloadedDriver
//create : Create database
//dataEncryption : Encrypt database on disk
//upgrade : Upgrade database
final var protocol = "jdbc:derby:";
final var driver = DriverManager.getDriver(protocol);

final var info = new Properties();
info.setProperty("shutdown", "true");

final var values = driver.getPropertyInfo(protocol, info);
System.out.println(values.length); // 0

boolean jdbcCompliant ()

このドライバが正規のJDBC準拠ドライバかどうかを報告します。

final var driver = DriverManager.getDriver("jdbc:derby:");

final var ret = driver.jdbcCompliant();
System.out.println(ret); // true

ページの先頭へ