• ベストアンサー

DBの接続

いつもお世話になります。 DBに接続するとき、ドライバクラスをロードする方法が分かりません。 Class.forName("xxx"); という形をしていると思うのですが、 xxxに入る文字列はどのようにして分かるのですか? helloworld(http://www.hellohiro.com/jdbc.htm)では sun.jdbc.odbc.JdbcOdbcDriverとなっていますが、 これをこのまま使うとエラーになります・・・ 基本的なことですが、よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#49428
noname#49428
回答No.2

java.lang.ClassNotFoundExceptionが発生するのは、そのクラスが見つからないためです。 クラスパスに、該当するクラス(jar)が存在するか確認してみて下さい。 あなたがおっしゃるプロジェクトが、何を指してるのか分かりませんが、 もしEclipseだとすると、プロジェクトごとに指しているクラスパスは異なります。

japan_3
質問者

補足

そうです、eclipseです。 jarの指定が足りてないのですね。 すごく分かりました。 ありがとうございました。☆☆☆

その他の回答 (1)

noname#49428
noname#49428
回答No.1

あなたのお使いになっている、JDBCドライバによります。 MySQLなら、"org.gjt.mm.mysql.Driver" Oracleなら、"oracle.jdbc.driver.OracleDriver" PostgreSQLなら、"org.postgresql.Driver" SQLServerなら、"com.microsoft.jdbc.sqlserver.SQLServerDriver"

japan_3
質問者

補足

ご解答ありがとうございました。 MySQLですので一番上のものを使いましたが java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver というエラーが出ます。 同じPC内で違うプロジェクトにて Class.forName("com.mysql.jdbc.Driver").newInstance(); というドライバ名にてDBに接続できるので不思議です。 このドライバを使っても java.lang.ClassNotFoundException: com.mysql.jdbc.Driver というエラーになりますし。 プロジェクトごとに繋げたりつなげなかったりするものなのですか?

関連するQ&A

  • AccessDBのデータの抽出

    はじめまして。 JAVAを勉強しだしてまだ一週間でわからないことが まだ多いのでご教授よろしくお願いします。 開発環境はForte for, Community Edition v. 3.0で サーバーはApache Tomcat/4.0.3です。 サーブレットクラスファイルの中で Accessのデータベースからデータを抽出して そのデータを表示させたいのですが、ドライバを ロードする Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver") の部分で DBaccess/DBaccess.java [15:1] 例外 java.lang.ClassNotFoundException は報告されません。スローするにはキャッチまたは、スロー宣言をしなければなりません。 Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); エラー 1 個コンパイルエラー DBaccess. がでるのですがエラーになる原因がわかりません。 アドバイスよろしくお願いします。

    • ベストアンサー
    • Java
  • データベース接続の際の問題

    こんにちは。 今私はJAVAサーブレットを使ってAccessのデータベースの内容を表示するプログラムを作っています。ちなみにサーバーはApache Tomcat 4.0で開発環境はForte for java, community Edition v.3.0です。JDBCドライバ(タイプ1ドライバ)をロードする部分のソース Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); でちゃんとドライバをロードしてくれません。 いろいろ調べた結果、環境変数にドライバを登録するという話しを聞いたのですが、どこをどう設定すればよいのかわかりません。設定の仕方、もしくはこのことが詳しく載っている本やホームページがありましたら教えてください。

    • ベストアンサー
    • Java
  • Class.ForName("sun.jdbc.odbc.jdbcOdbcDriver")でエラー

    JDBCでAccessへ接続しようとしているのですが、 ECLIPSE上で、Class.ForName("sun.jdbc.odbc.jdbcOdbcDriver")が「処理されない例外の型」とエラーになります。 これは、どうしてでしょうか? 環境は、 ECLIPSE3.0.2 j2sdk1.4.2を使用しています。

    • ベストアンサー
    • Java
  • java データベース接続

    javaの勉強していまして、質問があります。よろしくお願いします。 javaでデータベースの接続ができなくて迷っております。ずっとネットで調べてもダメでした。 ネットで調べたとおりにやっても、 例外発生:java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver このようなエラーがでます。 eclipseを使ってます。windows7 練習にアクセスにつなごうと思ってます。 事前にデータソース(ODBC)の登録はしました。 ドライバーとかインストールするものなのでしょうか? package sample; import java.sql.Connection; import java.sql.DriverManager; public class Hello { public static void main(String args[]) { try { //JDBCドライバのロード Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //各設定 String url = "jdbc:odbc:SampleDB030"; String user = ""; String pass = ""; //データベースに接続 Connection con = DriverManager.getConnection(url,user,pass); System.out.println("接続成功"); //データベースを切断 con.close(); } catch (Exception e) { System.out.println("例外発生:" + e ); } } }

    • ベストアンサー
    • Java
  • サーブレットからJavaBeansを利用したDB接続について

    初歩的な質問ですみません。 下記環境で、Javaを勉強しています。 教材 :やさしいJava 活用編 Lesson8 Sample5 実行環境:j2sdk1.4.1_07 (教材では、j2sdk-1_4_0) Tomcat 5.0(教材では、Tomcat-3.2.3) IE6.0 サーブレットでリクエストを受付け、JavaBean経由でDBに接続(Access2000を利用)しDBの中身をJSPで表示するいう流れです。サーブレットのURLを指定して実行してもjspページには何も表示されません。 ログファイルには下記エラーが記述されています。 勘違いか、何らかの初歩的なミスだと思いますが、解決方法が見つかりません。解決方法をご存知の方教えて下さい。よろしくお願いします。 尚、JDBC-ODBCドライバを使用していますが、サーブレットからではなくJavaアプリからではAccess2000のDB参照更新が出来ています。サーブレットから(JavaBean経由)だとうまくいかないという事象です。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at CarDB.CarDBBean.<init>(CarDBBean.java:22) at Sample5.doGet(Sample5.java:16) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at ~略~

  • JDBCでaccessから取得したデータをjTableに表示させたい。

    JDBCでaccessのデータベースから取得したデータをjTableに表示させたいのですが どのようにしたらセルのデータやタイトルを入力させることができますか? またデータベースを操作したらその結果を表示させたいと考えています。どのようにすれば実現できるでしょうか? accessのデータベースには以下のように接続していました。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String str = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=hello.mdb"; Connection con = DriverManager.getConnection(str, "", ""); 開発環境はNetBeansを使用しています。

  • JDBCドライバーのロードに関して

    参考書やwebページのソースコードにJDBCドライバーのロードのときに、Class.forName("...")と書いているものと、Class.forName("...").newInstance()と書いているものがあります。[...部分は省略]この二つのコードは、どこが違うのでしょうか。また、Sunmicroのホームページで、forNameメソッドは、"指定された文字列名を持つクラスまたはインタフェースに関連付けられた、Class オブジェクトを返します。"と、newInstanceメソッドは、"この Class オブジェクトが表すクラスの新しいインスタンスを生成します。"と書かれていますが、どうしてこれで、JDBCドライバーがロードされるのですか?また、初歩的な質問ですが、JDBCドライバーがロードされるというのは、どうゆうことですか?教えてください。

    • ベストアンサー
    • Java
  • Java環境で使用するAccessデータベースについて

    以下の様な開発環境でシステムを構築しています。 OS:windowsXP DB:Microsoft Access 2002 j2sdk:1.4.2_05 Tomcat:4.1.30 Web上で登録画面を表示、登録されたデータをサーブレット経由でDBに登録しようとしたところ、「パラメータが少なすぎます」というメッセージが出て登録できませんでした。 DBおよびSQL構文のエリア名の記入ミスも調べましたが問題ない模様です。 AccessのODBCドライバ(MDAC2.5)について調べたところ、MDAC2.5を使用したSQL文では二重引用符(”)を文字列リテラルとして使用できないようです。 この問題を回避するよい方法があれば、ぜひ教示願います。 <コーディング内容> //postされた内容を受け取る String wkkanri = request.getParameter(“kanri_No”); String wkroom = request.getParameter(“room_No”); ------------------------------------------------- //ドライバクラスのロード、DB接続 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Connection con = DriverManager.getConnection(“jdbc:odbc:syataku”); Statement stmt = con.createStatement(); //insert用sql文の発行 String sql = “insert into kihon(kanri_No,room_No) values(wkkanri,wkroom)”; Stmt.executeUpdate(sql);

  • javaでMySQLのデータ検索

    以下のサイトでただいま勉強しています。環境はMySQL4.0.15です。 http://msugai.fc2web.com/java/JDBC/mmMySQL.html ●JDBC ソースコードのところでつまづいています。 javaの実行 C:\java>java JdbcSample Exception: com.mysql.jdbc.Driver java.lang.ClassNotFoundException: com.mysql.jdbc.Driver  … // 1.JDBC Driver の登録 // 2.データベースへの接続 のあたりでエラーが発生している状態です。データベースの接続はAccess環境なら『コントロールパネル』→『管理ツール』→『データソース(ODBC)』で使用するデータベースを設定します。MySQLもこのあたりの設定が必要なんでしょうか? ●Accessの場合 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection Con = DriverManager.getConnection("jdbc:odbc:設定したデータベース名"); アドバイスお願いします。

  • javaからAccessをアクセスするときにファイルを直接指定できないのですか?

    JavaでMicrosoft Accessにアクセスするときに以下のプログラムでアクセスしました。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:DBs"); このプログラムを作成する前にODBC データソース アドミニストレータでデータベースの登録を行いました。 データベース名はデータソース名に拡張子を付けた名前にしました。 ODBC データソース アドミニストレータの登録を行わずにプログラムの中にファイルの場所を記述してMicrosoft Accessにアクセスすることはできないのでしょうか?

専門家に質問してみよう