2017-11-30 15 views
0

Javaファイルをamazon oracleデータベースに接続したいとします。Netbeans - Oracle DB - AWS "amazon RDB" - java 8

DataSource.java

public class DataSource { 

private static String dbName = System.getenv("PUBLIC"); 
private static String userName = System.getenv("root"); 
private static String password = System.getenv("3deemala7sas"); 
private static String hostname = System.getenv("oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com"); 
private static String port = System.getenv("1521"); 

public static final String JDBC_DRIVER = "oracle.jdbc.OracleDriver"; 
public static final String DB_URL = "jdbc:oracle:thin://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password; 

public static boolean checkDomain() 
{ 
    if (System.getenv("oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com") != null) { 
     return true; 
    } 
    return false; 
} 

DbConnection.java

public static Connection getConnection() 
{ 


    try { 
     Class.forName(DataSource.JDBC_DRIVER); 
     connection = DriverManager.getConnection(DataSource.DB_URL); 
     //connection = (Connection) DriverManager.getConnection(DataSource.DB_URL); 

     System.out.println("Connected ...."); 

     return connection; 
    } 
    catch (SQLException ex) { 
     System.out.println("Error syntax"); 
     System.out.println(ex.toString()); 
     ex.printStackTrace(); 
    }catch (ClassNotFoundException ex) { 
     System.out.println("Class not found error ..."); 
    } 


    return null; 
} 

App01.java

public class App01 { 



public static void main(String[] args) throws SQLException { 
    Connection connection = null ; 
    System.out.println(DataSource.checkDomain()); 
    connection = DbConnection.getConnection(); 

}} 

例外

java.sql.SQLRecoverableException:IOエラー:ネットワークアダプターは私はDbVisualizerのを使用して正常に接続している、またneatbeasデータベースサービスを利用しようとしましたが、それはあまりにも

Netbeansのエラーを接続していない:JDBCへの接続を確立できません:オラクル:薄い:@oracleinstance接続

注意が確立していません.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com:1521:oracle.jdbc.OracleDriverを使用するXE(リスナーが次のエラーで接続を拒否しました: ORA-12505、TNS:リスナーは現在SIDを認識していません接続記述子 )

答えて

0

エラーメッセージORA-12505, TNS:listener does not currently know of SID given in connect descriptorに基づいて、あなたのconnectioにエラーがあると思いますn文字列。具体的には、間違ったSIDを使用している可能性があります。

oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com:1521:XE

次の接続文字列oracleinstance.ctnrs4kazdmm.ap-south-1.rds.amazonaws.com:1521:orclを試してください。通常、RDSでOracleインスタンスを作成すると、デフォルトのSIDorclになります。

また、AWS CLIを使用してSIDを確認することもできます。 dbnameは(この場合ORCLで)SIDある

$ aws rds describe-db-instances 
{ 
"DBInstances": [ 
... 
    { 
     "DBInstanceStatus": "available", 
     "DBInstanceIdentifier": "MYORACLEDB", 
     "MasterUsername": "USERWITHSYSDBA", 
     "EngineVersion": "11.2.0.4.v1", 
     ... 
     "Endpoint": { 
      "Port": 1521, 
      "Address": "MYORACLEDB.blahblahblach.us-west-2.rds.amazonaws.c                                       om" 
     }, 
     "PendingModifiedValues": {}, 
     ... 
     "DBName": "ORCL", 
     ... 

0

私の質問にお答えいただきありがとうございます。

私はそれを把握しています。間違いは、uのようにdbに接続するURLにあります。だから、何見つかったと、URLは次のようにあるべきであるということである: -

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@"+hostname+":1521:orcl", "username", "password"); 

ORCLは、AWS(アマゾンクラウド)

おかげ

ためdefualtのデータベース名です