• ベストアンサー

JDBCドライバの登録と接続

javaプログラムでDBにアクセスをする時はドライバの名前とURLをしていしなければいけないらしいですが、わからなく困っています。 データベースはmySQLというフリーのものをインストール済みです。 ドライバの登録にClas.forName("ドライバ名")というクラス、 データベースへの接続はDriverManager.getConnection("URL","ユーザー名","パスワード")というクラスを用いるのは分かっているのですが、 引数に指定するドライバ名とURLがわからないです。 DBに詳しい方、ご回答よろしくお願いします。

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

  • ベストアンサー
  • yuji
  • ベストアンサー率37% (64/169)
回答No.3

#1の補足質問について回答します。 JDBCドライバーというのは一つではありません。 参考URLで、検索を行うことができます。 どれを使うかは、特性や価格などを考慮して決めます。 MySQLの場合には、 org.gjt.mm.mysql.Driver が利用されることが多いようです。 #JDBCについて書かれた本や書籍はたくさんあります。  一度、基礎から勉強した方がいいです。

参考URL:
http://industry.java.sun.com/products/jdbc/drivers

その他の回答 (5)

回答No.6

良いサイトがあったので、見てください。 1通りの方法が完全に載っています。

参考URL:
http://www.ae.wakwak.com/~minen/db_cobjava/install_win/mysql_install.htm
回答No.5

ごめんなさい、1つ抜けてました。 マイコンピュータ、もしくはエクスプローラから c:\mysql\bin\WindMysqlAdmin.exeをダブルクリックして起動してください。 これで、先ほどのビープ音はでなくなります。 なお、ドライバの話ですが、クラスパスを通しましたか?通していないなら、以下の事をする必要があります。 コマンドプロンプトで、以下を打ちます。 jar -xf c:\mm.mysql-X.X.XX-you-must-unjar-me.jar c:\にドライバのjarファイルがおいてある場合です。もし、やってあったらひつようありません。 解凍できたら、その中のmm.mysql-X.X.X.X-bin.jarを j2sdk1.4.0\jre\lib\extに置くか、jarファイルまで、クラスパスを通す必要があります。 説明にでてくる X.X.X.XXなどはファイルのバージョンを示しているので、適宜変更してください。

参考URL:
http://www9.ocn.ne.jp/~katarina/memo/jdbc.html
sugoitensai
質問者

補足

すみません。返答するのが大分遅れてしまいました。 お蔭様でドライバに接続できました。ありがとうございます。 beep音についてですが、 c:\mysql\bin\WindMysqlAdmin.exe ←このファイルが見つかりませんでした。

回答No.4

こんにちは コマンドプロンプトで以下のコマンドを打ってください。 mysqladmin -u root password "root" これで、rootというユーザのパスワードがrootになります。"root"の部分を"aaa"などに変えるとパスワードは aaa になります。好きなのを書いてください。 ちなみに、rootというユーザーは、インストール時に自動的に作成されるユーザーです。この場合は、管理者ということになります。 今度は、コマンドプロンプトの作業ディレクトリをC:\mysql\binにして下さい。以下のように打てばよいです。 cd c:\mysql\bin また、コマンドプロンプトで以下の様に打ってください。 mysql -uroot -p できたら、パスワードを打つように促されますので、先ほどのパスワードを打ってください。それができたら、mysqlと対話できます。 mysqlは、インストール時にtestというデータベースが自動的に作成されますので、それを使いましょう。以下のコマンドを打ってください。 USE test これで、testデータベースと接続できました。あとは、CREATE TABLE ~ 等というSQL文を打って表を作成すると1通りの作業は完了です。 Javaのソースは DriverManager.getConnection("jdbc:mysql://localhost/test","root","root") となります。 なお、PATHの設定が必要ですが、C:\mysql\binでPATHを設定してください。 最後に、mysql がインストールしてあるディレクトリがCドライブ下にインストールされていることを前提としています。違うなら、適宜変更してください。 また、分からない事があったら、聞いてくださいね。

参考URL:
http://msugai.fc2web.com/java/JDBC/MySQLdousa.html
sugoitensai
質問者

補足

すみません上記コマンドmysql -uroot -p の後、 パスワードを聞かれて先ほど打ったパスワードを入力したところ パソコンのBeep音が鳴り、 ERROR 2003: Can't connect to MySQL server on 'localhost' (10061) というエラーが発生しました。 なぜなのでしょうか?

回答No.2

こんにちは。 ドライバは普通はmm.mysql.Driverを使います。ソースの書き方は、 Class.forName("org.gjt.mm.mysql.Driver"); です。 URLは、"jdbc:mysql://localhost/データベースの名前" となります。localhostの部分は自分のパソコンの中にmysqlがインストールされているならば "localhost" 、ネットワーク上の他のパソコンにアクセスするなら、そのパソコンのアドレスを書きます。 たとえば、データベース名がTestDBという名前だと、以下の様になります。 String url = "jdbc:mysql://localhost/TestDB"; String user = "taro"; String pass = "password"; Connection conn = DriverManager.getConnection(url,user,pass); なお、最初はその他の設定が間違っているということがありますので、エラーを直接記入すると皆さん、回答がしやすいです。1発で解決すると思われます。 では、がんばってください。

sugoitensai
質問者

補足

詳細な説明ありがとうございました。 String url = "jdbc:mysql://localhost/TestDB"; String user = "taro"; String pass = "password"; 上記の例ではURLのデータベース名がTestDBとなっていますが、データベース名というのは何を見ればわかるのですか? すみません、データベース初心者でほとんどわからないのです。 あと、ユーザー名とパスワードの設定の仕方を教えてください。 よろしくお願いします。

  • yuji
  • ベストアンサー率37% (64/169)
回答No.1

検索エンジンで MySQL JDBC のキーワードで検索すれば、 いくらでもでてきますよ。 まずは検索エンジンを活用しましょう。

参考URL:
http://www.hellohiro.com/jdbcmysql.htm
sugoitensai
質問者

補足

早速の回答ありがとうございます。 検索エンジンで調べたところ、ドライバ名がサイトによって違うようでした。 mySQLだからといって、ドライバ名は1つではないのでしょうか? URLも同様でした。 どのように指定すればよいのか具体的に教えてもらえませんか?

関連するQ&A

  • JDBCドライバの登録とデータベースとの接続のプログラムについて

    JAVAを使ってMySQLに接続したいのですが // JDBCドライバの登録 String driver = "org.gjt.mm.mysql.Driver"; // データベースの指定 String url = ".;%JAVA_HOME%\lib\tools.jar;mysql-connector-java-5.0.4-bin.jar"; String user = "root"; // 環境に応じて設定 String password = "ishi"; // 環境に応じて設定 Class.forName (driver); // データベースとの接続 con = DriverManager.getConnection(url, user, password); の部分がよくわかりません。研修先のパソコンではうまくできたのですが自宅のパソコンで実行環境を構築したところうまくいきません。 String userとString passwordの部分についてはMySQLで設定したものに設定しました。 String urlに関しても何か設定を変えなければいけないのでしょうか? また他に設定しなければならない部分があるのでしょうか?

    • ベストアンサー
    • Java
  • JDBCでMySQLに接続

    Linuxにmysql-4.1.7をインストールして、JDBCドライバを入れ、javaからデータベースを操作しようとしています。 しかし、「mysqld_safe --user=mysql &」を実行してから、javaプログラムをコンパイルして実行すると、 java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.net.ConnectException) at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:331) at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89) at org.gjt.mm.mysql.Driver.connect(Driver.java:167) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:15) というエラーが出てしまいます。原因がわかる方がおられましたら、ご指導のほどよろしくお願いいたします。

  • JDBCについて

    JDBCを用いたMySQLデータベースへの接続方法について質問があります。 【現在の状況】 tomcatをインストール済み(正常に作動・・・起動した状態で、http://localhost:8080/に接続できます。) MySQLをインストール済み(正常に作動・・・データベースを作成できます。(例えば、sampleとします。)) JDBCドライバをセットアップ済み(CLASSPATHの設定も問題ありません。) しかし 作成したデータをjavaプログラムを用いて表示しようとしたところ com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'sample' というエラーが出てしまいました。 データベースへのアクセスが拒否されたとあるのですが 理由がわからずに困っております。 接続は、以下のようにしています。 Class.forName("com.mysql.jdbc.Driver"); Connection cn = DriverManager.getConnection("jdbc:mysql:///cardb", "", ""); 解決策をご存知の方いらっしゃいましたら 御指導願います。

    • ベストアンサー
    • Java
  • SQLサーバーに接続させたい(JSP使用)

    宜しくお願いします。 現在 JSP + TOMCAT + APACHE + WIN2000SERVER + SQLServerで タイトルのようなことを実現しようとしています。 本や、WEBでしらべてみると MySQLをつかった例が多く、 それをマネて多分もうちょっとで実現できる というところまできていると思うのですが。。 MySQLをつかった例は、 Class.forName("org.gjt.mm.mysql.Driver"); Connection db = DriverManager.getConnection("jdbc:mysql://localhost/[DB名]?user=sa&password="); となっており、 ドライバ名の「mysql」の部分をSQLサーバー用のドライバに 変更すればつながるとおもっているのですが、 ドライバ名が分からず困っております。 (ユーザIDやパスワードはSQLサーバ用に変更しています) 「sqlserver」「odbc」そのほかDSN名などもためしてみたのですが やはりエラーとなってしまいます。 (もしかしてドライバの呼び出し方がおかしいのでしょうか? Class.forName("org.gjt.mm.mysql.Driver"); の「org」や「gjt」などの意味は実は分かってないのです・・。) 何かお気づきの方が居られましたら ご教授ください宜しくお願いします。

    • ベストアンサー
    • Java
  • Javaでデータベースにアクセス

    するときに以下のように Class.forName (driver); をする必要があるのですが これの意味を教えてください なぜこれが必要なのでしょうか? ・・・・・・・・・・・・・ // JDBCドライバの登録 String driver = "org.postgresql.Driver"; // データベースの指定 String url = "jdbc:postgresql://fedorasrv.com/test"; //サーバ名またはIPアドレス+データベース名 String user = "fedora"; //データベース作成ユーザ名 String password = "XXXXXXXX"; //データベース作成ユーザパスワード Class.forName (driver); // データベースとの接続 Connection con = DriverManager.getConnection(url, user, password); ・・・・・・・・・・・・・・

    • ベストアンサー
    • Java
  • MySQLの外部ホストのデータベースへの接続

    MySQL初心者です。 自分のPC:192.168.1.201から接続先:192.168.1.202のデータベースにアクセスするために以下のコードを設定して実行したのですが、 『java.sql.SQLException: null, message from server: "Host '(自分PCのホスト名)' は MySQL server に接続を許可されていません"』 というメッセージが表示されて、アクセスができません。 この原因と、その解決方法をご存知の方がいましたら教えて頂けないでしょうか? MySQLに外部ホストからのアクセス権限を与えるような設定ってあるのでしょうか? Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql://192.168.1.202/TEST_DB?useUnicode=true&characterEncoding=SJIS"; String user = "*****"; String pass = "********"; Connection con = DriverManager.getConnection(url,user,pass);

    • ベストアンサー
    • MySQL
  • JDBC接続について

    お世話になります。 MSDE2000にJDBCにて接続したいのですが、SQLExceptionが発生して接続できません。 JDBCドライバーはMSよりDLして、CLASSPATHに追加しております。 環境は OS:Win2K Pro JAVA:jdk1.3.1_18 です。 JAVAのソースは下記のとおりです。 import java.sql.*; import java.io.*; import java.util.*; public class SQLServerJDBCTest { public static void main(String[] args) { // ログインに必要な情報 String user = "sa"; //ユーザ名 String pass = "password"; //パスワード try { // ドライバクラスをロード Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // データベースへ接続 Connection con = DriverManager.getConnection ("jdbc:microsoft:sqlserver://127.0.0.1:1433",user,pass ); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); // クエリーを実行して結果セットを取得 String sql = "SELECT GETDATE()"; ResultSet rs = stmt.executeQuery(sql); // 表示 while (rs.next()) { System.out.println(rs.getString(1)); } // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } } おかしな点や追加設定等ありましたらご指摘ください。 (投稿文字制限でExceptionの内容が載せられませんでした。) また、MSDEのバージョン7に接続する場合、同じJDBCドライバーで、同じ設定でいいのでしょうか? よろしくお願いいたします。

  • ServletでJDBCを使う時

    servletでJDBCを使ってデータベースに接続しようと思っていますが、 servletのdoGetの中で、 Class.forName("com.mysql.jdbc.Driver"); と書くとClassNotFoundExceptionエラーになります。 public static Connection getConnection() などのクラスを作って、その中で Class.forName("com.mysql.jdbc.Driver"); と書くとエラーにはならないのですが、doGetの中では宣言できないのでしょうか?自分が何か勘違いしていたら申し訳ございません。 ご助言お願いいたします。

    • ベストアンサー
    • Java
  • MySQLその他のコンピュータへの接続方法

    MySQL初心者です。接続するコードに関して質問させていただきます。 下記のコードを設定すると、自PCのデータベースに接続されますが、他のホストコンピュータのMySQLデータベースへ接続する際のコーディングはどのように設定すればよろしいでしょうか? 例えば、 自PC:192.168.1.201 接続先:192.168.1.202 Class.forName("org.gjt.mm.mysql.Driver"); String url = "jdbc:mysql:///******?useUnicode=true&characterEncoding=SJIS"; String user = "*****"; String pass = "********"; Connection con = DriverManager.getConnection(url,user,pass); ご指導のほどよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • jspからmysqlに接続するメソッドについて

    Connection cn = DriverManager.DriverManager.getConnection(dsn); 引数のdsnには以下のように入力するとありました。 jdbc:mysql://ホスト名/データベース名[?属性情報] ホスト名ってなんですか? データベース名はcreate table文で作ったtableの名前ですか?それともmysqlのことですか? 非常に初歩的な質問かと思いますが、宜しくお願いします。

    • ベストアンサー
    • MySQL