データ ソース (ODBC)について教えてください。


TomCatをベースにした、DBがOracleのローカルなWebページでテストを行っている最中、
「データソース名および指定されたドライバが見つかりません」というエラーが発生しました。


stmt = con.createStatement(); 
rs = stmt.executeQuery( sqlbun );

SQL実行前の、createStatementでSQL文生成を実行したタイミングで発生していました。


エラーの原因を調べてみたところ
「データソース(ODBC)の設定」が関係しておりました。
ユーザーDSN、または、システムDSNのところでデータベースへのアクセスの設定を行っていない事が
原因でした。

このデータソース(ODBC)ですが、
「この設定を行うとDBとアクセス」ができる、という認識しかないので教えて頂きたいのですが、
何をするものなのか?またいつ使用するか?など漠然とでしか把握できておりません。

データソース(ODBC)とは、
OracleならOracle専用のデータソース、PostgreSQLならPostgreSQLのデータソースという風に
各種DBと接続する際に必ず必要なものなのでしょうか?

また、JDBCを使用する場合にはデータソース(ODBC)の追加は不要なのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/02/09 00:17:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tomo_k No.1

回答回数426ベストアンサー獲得回数26

ポイント70pt

http://www.techscore.com/tech/J2EE/JDBC/oracle-1.html

使用するドライバーにもよります。

JDBCといってもJavaAPIとして仕様が決められているのはインターフェースだけです。

http://www.atmarkit.co.jp/fjava/javafaq/jdbc/jdbc02.html

JDBCドライバーには大きく分けて4種類あります。

TYPE1:JDBC-ODBCブリッジドライバ

TYPE2:ネイティブブリッジドライバ

TYPE3:ネットプロトコルドライバ

TYPE4:ネイティブプロトコルドライバ

このうち、ODBCの設定をする必要があるのはTYPE1に属するものだけで現在ではほとんど使われていないタイプです。

何というJDBCドライバーを使っているのかによっても回答が変わってくるかと思います。

たとえばOCI Driverを使っている場合だと、Oracle Clientをインストールしネットマネージャで適切な設定をする必要があります。

そして、ネットマネージャで設定したデータベースサービス名でDriverManager.getConnection()を呼び出しコネクションを設定する必要があります。

Thin Driverを使っている場合だと、Oracle Clientすらインストールする必要がなく、Oracleが動いているマシーンのIPアドレス、ポート、Oracleのユーザ名とパスワードが正しく設定されていれば大丈夫なはずです。

id:like_aoihana

早速のご回答ありがとうございます。

>JDBCドライバーには大きく分けて4種類あります。

>TYPE1:JDBC-ODBCブリッジドライバ

>TYPE2:ネイティブブリッジドライバ

>TYPE3:ネットプロトコルドライバ

>TYPE4:ネイティブプロトコルドライバ

JDBCで一つではなく、4種類に分かれてあるのですか。

>ODBCの設定をする必要があるのはTYPE1に属するものだけ

ありがとうございます。

JDBCとODBCについて勉強不足というのもあるのですが

何故JDBCとODBCが必要なんだろう・・・?という疑問が巡っておりまして(汗)

おかげ様でモヤモヤしていた疑問が取れました。

2008/02/05 23:43:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません