Connexion avec oracle dans l'application java


J'ai téléchargé oracle express 11g edition et installé cela.Maintenant, je veux le connecter à partir de l'application java. Voici mon code de connexion: -

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:example", "example","password123");

Mais quand j'essaie de le connecter, il me montre l'exception suivante.

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

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at javaapplication3.JavaApplication3.main(JavaApplication3.java:40)

Mais quand j'essaie de me connecter avec la base de données "xe", elle est connectée.

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();   
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "example","password123");

Je ne sais pas pourquoi cela se produit?. Veuillez me donner une référence ou un indice.

Author: louiscoquio, 2012-11-01

4 answers

Je pense que vous êtes un malentendu entre database schema et le type de base de données. Dans Oracle, XE signifie Express Edition de la base de données oracle. ORCL signifie Oracle Corp.

Dans mysql

DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "example","password123");

`test` is a database schema.

Dans Oracle XE

DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "example","password123");
DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@myhost:1521:orcl","example", "password123");

`example`: database schema name and DB user name are the same.
 8
Author: CycDemo, 2017-01-27 11:14:29

Les URL de connexion pour Oracle sont au format:

Jdbc:oracle:thin:@HOST:PORT:SID

Le SID est un identifiant de site. Dans une installation oracle complète, vous pouvez avoir plusieurs SID, mais pour Oracle Express, ce sera toujours XE.

Ce à quoi vous faites référence en tant que "base de données" équivaut à un "utilisateur" dans Oracle ("exemple" dans votre code ci-dessus). Tables etc... sont créés sous cet utilisateur.

 4
Author: Nick Wilson, 2012-11-01 11:30:25

Vérifiez quelles instances sont connues de l'auditeur en exécutant: lsnrctl services

Vérifiez vos tnsnames.ora

Vérifiez vos paramètres SID pour la faute de frappe et la valeur des paramètres invalides

 0
Author: Alpesh Gediya, 2012-11-01 11:28:52

Dans le modèle d'URL XE et orcl sont les ID de service pour Oracle. Pour Oracle exprimé édition "xe" est utilisé pour Oracle Enterprised édition "orcl)" est utilisé..

 0
Author: vijaymmali, 2013-12-29 10:38:59