1

こんにちは以下は、JDBC接続を使用してOracle DBに接続し、いくつかの値を返すために私が書いたコードです。しかし、このコードは接続を確立し、自分のマシンでオラクルのヒキガエルを開いている場合に結果を返します。

しかし、オラクルのヒキガエルを閉じてこのコードを実行しようとすると、接続されません。

Oracleヒキガエルを手動で開かずにOracle DBに接続する方法を教えてください。

package library;
import java.io.IOException;
import java.sql.*;

public class DBAutomationConnection {
public static void main(String args[]) throws ClassNotFoundException, IOException, SQLException {
  DBAutomationConnection dbconn = new DBAutomationConnection();
  //Connection conn = dbconn.DBConnection1();
  dbconn.DBConnection1("select * from employee where empid='test123'","ROLE_NAME");

}

public void DBConnection1(String query, String colName)throws IOException, ClassNotFoundException{
 Connection connection = null;
 Statement stmt = null;
  try {
      // Load the JDBC driver

      String driverName = "oracle.jdbc.driver.OracleDriver";

      Class.forName(driverName);

      connection = DriverManager.getConnection("jdbc:oracle:thin:@//testhostname:1528/ServiceName", "XXAAA_U", "Jw9S");
      System.out.println("Connection successful: " +connection);


      try {
              stmt = connection.createStatement();
              ResultSet rs = stmt.executeQuery(query);
              while (rs.next()) {
                    //String UserID = rs.getString("USER_ID");
                  String UserID = rs.getString(colName);
                    System.out.println(UserID);     
              }
        } catch (SQLException e ) {
              System.out.println("Could not execute query.");
              //JDBCTutorialUtilities.printSQLException(e);
        } finally {
              if (stmt != null) { stmt.close(); }
        }


  } catch (SQLException e) {
                  System.out.println("Could not connect to the database");
  }

}
4

3 に答える 3

0

オラクルをリモートで接続するには、システムに ORACLE クライアントをインストールする必要があります。

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

于 2013-02-13T10:28:31.933 に答える
0

システムに Oracle Thin Driver がインストールされていますか? このリンクはあなたを導くことができます。

于 2013-02-13T10:30:30.070 に答える