• 締切済み

データベースにアクセスできない

JavaロジックでDBにアクセスできなく困っております。 ◎開発環境 Eclipse3.2.1、Tomcat5.5.20、JRE1.5.0_06、PostgreSQL8.1.2 Connection con = DriverManager.getConnection(url, user, password); ↑このコートでSQLException発生! 変数url, user, passwordには正しい値がセットされている事確認済 エラーコードをチェックしましたが『0』の正常終了。。。 上記コードでSQLException発生の原因・理由等の原因・アドバイス 頂ければ幸いです。

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

みんなの回答

  • harutovx
  • ベストアンサー率50% (11/22)
回答No.2

本当にパスワードなどが正常で、ドライバーも読み込まれているとすると。 FireWallなどの環境のせいで、パケットがDBまで届いていないかも知れませんね。 一度、FireWallを無効にしてみてはいかがですか? また、やっているかも知れませんが、Eclipseを動作されているマシンから手動で接続するとどうですか?

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

ドライバを読み込んでいないだけでは? DriverManager#getDrivers()でリストアップしてちゃんと読み込まれているかチェックしてみては? または、urlの値は正しいものですか? ドライバが読み込まれているならDriver#acceptsURL()を使って、そのドライバに対応したURLか調べてみてはいかがでしょう?

blackred20
質問者

補足

>DriverManager#getDrivers()でリストアップしてちゃんと読み込まれているかチェックしてみては? 正しく認識されていました。 >または、urlの値は正のですか? url, user, password全て正しい値です。 >ドライバが読み込まれているならDriver#acceptsURL()を使って、そのドライバに対応したURLか調べてみてはいかがでしょう? こちらもの結果も問題なく対応したURLでした。 ん~困った。。 実は元々動作実績のあるアプリで急に上記のエラーが発生するようなりました。 なので、問題は環境面にあるのかなぁ~とも思いますが 特に開発・運用面で変更点がないので難渋しています。

関連するQ&A

  • 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
  • 開発言語:JAVA、データベース:Postgresql8.1の環境で開発してます。

    開発言語:JAVA、データベース:Postgresql8.1の環境で開発してます。 Driver driver = DriverManager.getManager(url文字列); ※url文字列 jdbc:postgresql:プロジェクト名 上記コードでSQLExceptionが発生します。 データベースアクセスエラーのようですが何故発生するか分かりません。 jdbcドライバが認識されていないのでしょうか!? ご回答、アドバイスの方よろしくお願いします。

  • データベースへのアクセスができない

    ソース上でコネクションを取得しようとすると、 以下のエラーが出てコネクション取得ができません。 org.postgresql.util.PSQLException: The connection attempt failed. 他の方が上記のエラーが発生したときの方法をいくつか試してみましたが、 変化ありませんでした。 Connection con = DriverManager.getConnection ("jdbc:postgresql://127.0.0.1:5432/db_test","postgres","PASS"); (1)上記の「127.0.0.1:5432」の箇所をそれぞれ「localhost:5432」「localhost」に変える (2)接続許可リスト(pg_hba.conf)に「host all all 127.0.0.1 255.255.255.255 trust」を追加する (3)ファイアーウォールをはずす。 あと、tcpipによる接続を許可しなければならないため、postgresql.conf を編集し、 tcpip_socket=false を tcpip_socket=true に変える という記述がありましたが、 postgresql.conf に tcpip_socket という項目はみつかりませんでした。 postgreSQLのバージョンは8.4を使用しております。 また、プラットフォームはAndroidを使用しております。 AndroidでJDBCが使えるかどうかという疑問は残りますが、 JDBCを追加した際にエラーなどが起こらなかったため、 問題ないという認識でいます。 お門違いな認識・記述が多々あるかと思いますが、よろしくお願いします。

  • 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
  • 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
  • TomcatとMySQLが連携しなくなった?

    サーブレットを勉強しています。 勉強として、Eclipseを使ってWebアプリケーションを作っているのですが、なぜか以前まで連携していたMySQLと連携できなくなりました(DBにつながらなくなりました)。EclipseにMySQLドライバ(?)「mysql-connector-java-3.1.13-bin.jar」を入れて、やっています。 System.out.println(""); を使い、どこでエラー(try catchでcatchにいくところ)が出ているのかと調べると、 DriverManager.getConnection(DRIVER_URL,USER_NAME,PASSWORD); のところで、出ているようです。 何が原因として考えられるのでしょうか? よろしくお願いします。

  • 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 PostgreSQLで必要なファイルはあるのでしょうか?

    LinuxでPostgreSQLのデータベースをJDBCでアクセスしたいのですが、以下のソースで次のエラーが発生します。何か必要なファイルでもあるのでしょうか? java.lang.ClassNotFoundException:org.postgres.Driver また、LinuxのODBCも必要なファイルがあるのでしょうか? import java.sql.*; class jdbcSample2 { public static void main(String argv[]) { int a; String b; try { //Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); //String url = "jdbc:odbc:test"; Class.forName ("org.postgres.Driver"); String url = "jdbc:postgresql://127.0.0.1:5432/test"; String user = ""; String password = ""; Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement (); String query = "select * from member;"; ResultSet rs = stmt.executeQuery (query); while(rs.next()){ a = rs.getInt(1); b = rs.getString(2); System.out.println(a + ", " + b); } rs.close(); stmt.close(); con.close(); } catch (SQLException ex) { System.err.println("SQL failed."); ex.printStackTrace (); } catch (Exception ex) { ex.printStackTrace (); } } }

  • TomcatとPostgreSqlの接続について

    Tomcat4.0.4とApache1.3.26を使用しDBはPostgreSQLをつかっているのですが、DB接続がうまくいきません。 接続の際の記述は以下の通りです public void init(ServletConfig conf) throws ServletException { try{ Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://localhost:8080:5432/test"; String user = "nakayama"; String pwd = "noah"; con = DriverManager.getConnection(url,user,pwd); }catch(Exception e){ err = err + "DataBase Connection err = " +e+"<br>"; } } これで実行すると、以下のエラーが出ます。 DataBase Connection err = Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.lang.NullPointerException Stack Trace: java.lang.NullPointerException at org.postgresql.Connection.openConnection(Connection.java:155) at org.postgresql.Driver.connect(Driver.java:149) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at toroku2.init(toroku2.java:24) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655) at ・・・・・ どうすれば解決できるのでしょうか? 教えてくださいm(__)m

    • ベストアンサー
    • Java
  • JDBCドライバがない?

    PostgreSQLを使ったJavaアプリケーションをつくり、接続テストをしたところ、Tomcatのエラーで、HTTPステータス500となりました。 メッセージ: 「Cannot create JDBC driver of class '' for connect URL 'null'」 原因 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 原因 java.sql.SQLException: No suitable driver java.sql.DriverManager.getDriver(DriverManager.java:243) と表示されますので、JDBCのclassがないことが原因のようですが、どこを調べればよいかわかりません。 初心者です。よろしくご教授ください。 環境は次のとおりです。 OS:Linux(CentOS5) Tomcat5.5.28 PostgreSQL8.2.14 JDBCドライバ:postgresql-8.2-510.jdbc3.jar /var/webapps/tomcat/common/libに入れてあります。 環境変数のPATHの指定してあります。

専門家に質問してみよう