• 締切済み

JavaでのOracle接続について(JDBC)

mebunの回答

  • mebun
  • ベストアンサー率45% (10/22)
回答No.3

classes12.zipをCLASSPATHに追加か参照していますか。

maikelu
質問者

お礼

実行時にclasses12.jarにパスを通したらうまくいきました。でもojbc14.jarでは相変わらず駄目です。

関連するQ&A

  • 「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」エラー

    Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。 以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。 環境設定としてCLASSPATHにclasses12.zipのパスを通しました。 ------------------------------------------------- // JDBC APIのインポート import java.sql.*;class CUSTOMER { public static void main (String args[]) throws SQLException, ClassNotFoundException { // JDBC Driverの登録 Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle9iに接続 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin@192.168.0.10:1521:testdb", "test", "test"); // ステートメントを作成 Statement stmt = conn.createStatement(); // 問い合わせの実行 ResultSet rset = stmt.executeQuery("SELECT COUNT(*) FROM CUSTOMER"); // 問い合わせ結果の表示 while ( rset.next() ) { // 列番号による指定 System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); } // 結果セットをクローズ rset.close(); // ステートメントをクローズ stmt.close(); // 接続をクローズ conn.close(); } } ------------------------------------------------- 何かおわかりの方いらっしゃいましたら教えて下さい。宜しくお願いします。

    • ベストアンサー
    • Java
  • DBサーバ上でjdbcによるアクセス方法について

    Oracle JDBC Driverのロードを以下のように行おうとしました。 import java.sql.*; class JavaDataAccess01 { public static void main (String args[]) throws SQLException, ClassNotFoundException { // Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle10gに接続 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ORCL", "test", "test"); // ステートメントを作成 Statement stmt = conn.createStatement(); // 問合せの実行 ResultSet rset = stmt.executeQuery("select brand_id,value from brand"); // 問合せ結果の表示 while ( rset.next() ) { // 列番号による指定 System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); } // 結果セットをクローズ rset.close(); // ステートメントをクローズ stmt.close(); // 接続をクローズ conn.close(); } } コンパイル後実行すると以下のように例外がでます。 Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver. OracleDriver at java.net.URLClassLoader$1.run(URLClassLoader.java:199) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:187) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at JavaDataAccess01.main(JavaDataAccess01.java:11) ちなみにコンパイルして作成したクラスファイルはJavaDataAccess01です。使用しているDBはoracle10gです。環境設定もCLASSPATHにD:\oracle\product\10.2.0\db_1\jdbc\lib\classes12.zipを追加しているのですがどうにもうまくいきません。どなたか解決方法がわかる方、ご教授お願いします。

  • JavaからOracleへの接続が出来たり出来なかったり(改

    いつもお世話になっています。よろしくお願いします。 問題は、同じソースなのに、タイミングによって Oracleに接続出来たり、出来なかったりすることです。 まずは、問題のソースを短くまとめたものを書きたいと思います。 public class Sql private static Statement stmt; private static Connection conn; public static void main(String args[]) { Sql banana = new Sql banana(); banana.openOracle(); // Oracleへ接続するメソッドです。 ・ ・リャクサレテルワァ*:.。..。.:*・゜(n;‘∀)η(略 ・ banana.closeOracle(); // Oracleを切断するメソッドです。 } /** * Oracleへ接続するメソッドです。 */ private void openOracle() throws SQLException, ClassNotFoundException{ Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:oci8:@sampledb","user5","user5"); stmt = conn.createStatement(); } /** * Oracleを切断するメソッドです。 */ private void closeOracle() throws SQLException, ClassNotFoundException{ stmt.close(); conn.close(); } } 環境としては、 JDK5.0と、 Oracle9i(Client)をインストールしています。 インストールしてから今日まで1週間ですが、このような現象は 初めて起こりました。 JavaからOracleのデータベースを操作するようになって 3日目ですが、今日までうまく接続出来てきました。 処理をメソッドに分けてみたのは、今日が初めてです。 しかし、同じソースで接続できたりできなかったりする というのは、どういう現象なのでしょうか。 同じような現象を経験された方、 Oracle接続にお詳しい方、 どうか、ご教授よろしくお願いします。 プログラミングも、質問させていただくことも初心者ですので、 何か足りない情報などございましたら、ご指摘ください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Oracle Database 10g Express Editionを使いたい

    と思いDLしてインストールして SQLPLUSで ユーザ:usr1 パスワード:psswd1 でOracleに入り SQL> CREATE TABLE "PROJECT" ( "ID" NUMBER NOT NULL ENABLE, "PJNAME" VARCHAR2(100) NOT NULL ENABLE, CONSTRAINT "PROJECT_PK" PRIMARY KEY ("ID") ENABLE ) / 2 3 4 5 6 表が作成されました。 SQL> describe project; 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER PJNAME NOT NULL VARCHAR2(100) SQL> とテーブルを作り以下のJavaアプリを作り実行しましたが 動きませんでした。getConnectionの引数の "jdbc:oracle:thin:@localhost:1521:ORCL" の中のORCLの部分に何を入れてよいのか分からなかったので 根拠なしにORCLを使ったのが悪かったと思います。 ORCLの部分には何を入れたらいいのでしょうか? package pack; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcTest { public static void main(String args[]) throws SQLException,ClassNotFoundException { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","usr1","psswd1"); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("select ip,pjname from project"); while (rset.next()) { System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); } rset.close(); stmt.close(); conn.close(); } } エラー:Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: localhost:1521:ORCL

    • ベストアンサー
    • Java
  • tomcatからのoracle接続エラーについて

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle11g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 ドライバーは、Webサーバの /WEB-INF/libと$TOMCAT_HOME/common/lib配下に設置しております。 環境変数クラスパスに$TOMCAT_HOME/common/libが、設定されていることも確認しております。 JDBCドライバについては、以下の3パターンで試してみましたがすべて同じエラーとなりました。  ・オラクルインストール時のもの(DBサーバ)  ・オラクルHPの11g r2(11.2.0.1)のもの  ・オラクルHPの11g r2(11.2.0.2)のもの どのJDBCドライバを配置した時も、cataline.outには、 oracle.jdbc.OracleDriverクラスが、追加できたというログが出力されておりました。 尚、同じWebサーバでpostgresqlに接続するjavaサーブレットは、/WEB-INF/lib 配下にJDBCドライバーを配置しているだけで問題なく動作しております。 お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • javaサーブレットからのoracle接続エラー

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.sql.SQLRecoverableException: クローズされた接続です。 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle10g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 サーブレット起動時にDB接続し処理完了時にDBクローズしていますが、DBクローズ処理にて 上記エラーが、発生してしまいます。 DB接続及びDBクローズは、以下のようにプログラミングしております。 /** * 概要 : DBアクセス * 処理 : DBアクセス */ public void dbAccess() throws Exception { conn = null; try { DriverManager.setLogWriter(new PrintWriter(System.out)); Class.forName(driver); conn = DriverManager.getConnection( jdbcPrefix + hotname + dbname, username,password); // 自動コミット・モードを設定(手動コミット) conn.setAutoCommit(false); }catch (SQLException e) { throw e; }catch (Exception e) { throw e; } } /** * 概要 : DBクローズ * 処理 : DBを閉じます。 */ public void dbClose() throws Exception { try { if (conn != null) conn.close(); }catch (Exception e) { throw e; } } お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • JDBCとJDBCドライバのライブラリについて

    JDBCのライブラリと、DBベンダーのJDBCドライバのライブラリは、 どのような役割分担になっているのでしょうか? JDBCのライブラリ(ex. java.sql.Connection)は当然使った事がありますが、 DBベンダーのライブラリ(例えば、OracleのOJDBCのライブラリ)は使った事が無いな、、、 と思って質問しました。

    • ベストアンサー
    • Java
  • JavaからOracleを呼ぶ。(JDBCドライバの利用方法)

    色々調べましたが分からないので質問させてください。よろしくお願いします。 JavaからOracleを使いたくて、JDBCドライバのことを調べています。 Oracle(のClient)がインストールされた私のパソコン ↓ D:\oracle\ora92\jdbc\lib\classes12.zip\oracle\jdbc\driver\OracleDriver.class まず、コマンドプロンプトにてクラスパスを通しました。 C:\java > set CLASSPATH = D:\oracle\ora92\jdbc\lib\classes12.zip (↑CのjavaフォルダにSqlTest.javaを作成しています。) コンパイルは成功しましたが、実行はできません(;_;) java.lang.ClassNoClassDefFoundError: SqlTest というエラーです。 詳しい方、どうかご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • jdbc:oracle:thinでSSLを使用する方法について

    java.sql.SQLException: I/O例外です。: The Network Adapter could not establish the connectionというエラーが発生します。 ソースは以下です、どこが間違っているかわかりません。 import java.sql.*; import java.util.*; public class TestSSL { public static void main(String[] argv) throws Exception { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Properties prop = new Properties(); prop.setProperty("user", "scott"); prop.setProperty("password", "tiger"); // THIS DOES NOT WORK YET prop.setProperty("oracle.net.ssl_cipher_suites", "(ssl_rsa_export_with_rc4_40_md5, ssl_rsa_export_with_des40_cbc_sha)"); prop.setProperty("oracle.net.ssl_client_authentication", "false"); prop.setProperty("oracle.net.ssl_version", "3.0"); prop.setProperty("oracle.net.encryption_client", "REJECTED"); prop.setProperty("oracle.net.crypto_checksum_client", "REJECTED"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost)(PORT = 2484))) (CONNECT_DATA = (SERVICE_NAME = XE)))", prop); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery( "select 'Hello Thin driver SSL " + "tester '||USER||'!' result from dual"); while(rset.next()) System.out.println(rset.getString(1)); rset.close(); stmt.close(); conn.close(); } } ご教授よろしくお願いします。

  • JDBC Connectionを開放し続ける方法

    JDBC経由でOracleに接続して、接続しっぱなしにしたいのですが、どうすればいいのかよくわかりません。 とりあえず正常終了するようなソースを書いてみました。このソースからconnectionをCloseしないように編集したいのですが、どうすればいいのかわかりません。 やりたいことはJDBCの複数同時Connectionを試したくて、このConnectionを維持したまま、何回かこのプログラムを実行すればいいかなと思っているんですが。 長くなりましたが、よろしくお願いします。 import java.sql.*; class Employee { public static void main (String args []) throws SQLException { // Load the Oracle JDBC driver DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // Connect to the database // You must put a database name after the @ sign in the connection URL. // You can use either the fully specified SQL*net syntax or a short cut // syntax as <host>:<port>:<sid>. The example uses the short cut syntax. Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@HOST:PORT:SID", "scott", "tiger"); // Create a Statement Statement stmt = conn.createStatement (); // Select the ENAME column from the EMP table ResultSet rset = stmt.executeQuery ("select ENAME from EMP"); // Iterate through the result and print the employee names while (rset.next ()) System.out.println (rset.getString (1)); } }

    • ベストアンサー
    • Java