質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

60810閲覧

postgresql の適切な JDBC ドライバのバージョンは?

akihiro.koga

総合スコア7

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/12/09 04:19

初歩的な質問をさせてください。

現在、以下のような環境があります。
・postgresql 9.3.10
・java 1.8.0_65

この環境の場合、JDBC ドライバは何を使用するのがよいのでしょうか。
postgresql-9.3-1104.jdbc41.jar を使用しようと考えていたのですが、問題ないのでしょうか。
ちなみに簡単に接続テストをしたところ、接続は出来た感じでした。

本家のダウンロードページの「Supported Versions」のマトリックス表には、postgresql 9.3 と java 1.8 の
組み合わせがないので気にしてます。

そもそも「Supported Versions」のマトリックス表とは何なのでしょうか。
英語が不得手なので、書かれている文面の意味がイマイチ理解できてないのですが、サポートされてるバージョンの組み合わせが記載されているものではないかと理解していたのですが、違うのでしょうか。
もし、私が理解している通りであれば、今回の環境の場合、postgresql-9.3-1104.jdbc41.jar を使用するのは推奨されず、問題があるかもしれないということになるのでしょうか。

賢人者の皆様、教えて頂けないでしょうか。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

https://jdbc.postgresql.org/download.html#supportedの話で良いでしょうか。

Current Versionの項にある通り、基本的には現行バージョンを使えばよいです。

Unless you have unusual requirements (running old applications or JVMs), this is the driver you should be using.

現時点ではVersion 9.4-1206ですね。で、このバージョンがサポートしている対象は、これまた同じ節に書かれていますが、

It supports Postgresql 7.2 or newer and requires a 1.6 or newer JVM.

ということで、質問文中の環境はサポートされていることになります。ついでに言うと

If you are using 1.8 then you should use the JDBC42 version

とのことなので、使用すべきなのはJDBC42 Postgresql Driver, Version 9.4-1206ということになりますね。


postgresql-9.3-1104.jdbc41.jar を使用するのは推奨されず、

というわけではありませんが、新しいバージョンでは過去発見されたバグが修正されているのでより良い、ということになります。
(もちろん実際には新しいバグが含まれている可能性もありますので、一般的には、という話ですが。)

また、オフィシャルでJava8ならJDBC4.2のものを使えと言っている以上、postgresql-9.3-1104.jdbc41.jarを使用して何か問題が発生した場合、例えばwebで似た症状を検索しても使っている人がいない…みたいな状況に陥りやすいのではと考えます。


Supported Versionsの表は、縦がPostgres JDBCドライババージョン、横がそのドライバがサポートしているJDBCドライバのタイプですね。

投稿2015/12/09 06:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akihiro.koga

2015/12/09 08:22

非常に詳しい丁寧なご説明、ありがとうございます。 不明点がすべて分かり、スッキリしました。 Current Versionの項は、完全に読み飛ばしていました。 今回は、postgresql-9.4-1206.jdbc42.jar を使用するように話しをしたいと思います。 ありがとうございました。
guest

0

個人の趣味で動作保証されていない組み合わせに挑戦するのは自爆しようとしまいと本人の自由ですが、通常企業が会社の資金を費やしてやるなら動作保証されている環境を用意します。

投稿2015/12/09 04:48

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akihiro.koga

2015/12/09 05:12

ご忠告ありがとうございます。 それで、結局「Supported Versions」のマトリックス表は、私の理解通りということでしょうか。動作保証を表しているマトリックス表という理解でよいのでしょうか。 そういう理解の場合だと、postgresql-9.3-1104.jdbc41.jar は使用しない方が賢明で、postgresql と java の組合せを見直しした方がよいということなのでしょうか。 ご回答に対して、再度質問する形で申し訳ありませんが、もう少しだけ詳しく教えて頂けないでしょうか。 よろしくお願いします。
Orlofsky

2015/12/12 03:24

yukihaneさんのコメントでは動作保証されている組み合わせのようで、良かったですね。動作保証されているかは最初に確認すべきです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問