JDBC APIバージョン vs JDBCドライバーバージョン

データベースにアクセスするとき、JDBCドライバーを使うことが多いと思います。データベースによってはC++や.NETなどのライブラリがあったりするものもあって、高速アクセスだったらそうしたネイティブドライバーを使ったほうが良いのですが、WindowsでもLinuxでも動くJDBCドライバーは未だにデータベース接続において頼れる存在ですよね。

私も仕事柄MySQL、PostgreSQL、SQL Serverなどをよく使いますが、JDBCドライバーで接続する場面も多いです。

ただ、使用するJDBCドライバーのバージョンには一瞬悩みますよね。各データベースのJDBCドライバーも、一つのjarファイルだけではなく、複数のJDBC APIのバージョン対応したjarが用意されています。

例えば、JRE8の環境ならJDBC APIの4.2、JRE11とか15ならJDBC API 4.3準拠のJDBCドライバーを使えば良いのです。

私もPostgreSQLのJDBCドライバーを使うとき、JRE7に対応していたJDBC4.1を使っていましたし、データベースに触ったことがある方なら、「あぁ4.1か」とかピンと来るものでしょう。

データベースに詳しくないお客さんから何故かJDBCドライバーのバージョンの質問が来ました。こちらはJRE8で動くソフトウェアを提供していたので、JRE8に対応するJDBCバージョン4.2準拠のJDBCドライバーを使ってくださいとお伝えしました。

そしたら、「JDBC4.2はデータベースのベンダーのサポートが終了しているのでダウンロードできません」、「代わりに提供いただけますか?」と謎の回答が来ました。え、そうなの?と思ってデータベースのベンダーのサイトを見てみると、思いっきりJRE8/JDBC 4.2はサポートしています、と書いてあるんですよね。

結局、JDBC API 4.2がJDBCドライバーのバージョン4.2だとお客さんが勘違いしてしまったようで、そんなに古いドライバーは入手できないよと思ってしまったようです。

JDBCバージョンとJDBCドライバーのバージョンの対応表ぐらいはベンダーのWebページに載っているので、データベースに詳しくなくてもそれぐらい調べて欲しかったな、と思った次第でした。

メールを送ってくれたお客さん自身は詳しくなくても、その会社はシステム開発会社(SIer)。CCに何人もの関係者が同報されていたので、誰か一人ぐらい内部で気付いても良いのでは思いました。メール対応を新人さんに担当させるのも良いですけど、やり取りを放置しないで必要なときにフォローあげてくれても良いのにな、とSIerの体制にも疑問を感じましたね。

Categories:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です