salut je suis nouveau à Java lorsque j'ai essayé de connecter Oracle avec mon code d'exemple Java, j'ai obtenu l'exception ci-dessus
mon code est p> et l'exception levée est p> aidez-moi à résoudre ce p> p>
7 Réponses :
typiquement oracle utilise le port 1521 pour l'accès à la base de données et vous souhaitez utiliser le port 8080 à la place. Vous devez vérifier pour vous assurer que vous avez spécifié le bon port. P>
J'ai essayé avec 1521 aussi mais dans ce cas, il a refusé de se connecter avec la base de données et une erreur ORA 12505 a été obtenue.
Une erreur que je vois est que vous devez faire un RS.Next (); Cela permettra de réaliser des premiers résultats.
par exemple p>
Premièrement, l'URL de connexion est fausse. La poste 8080 est normalement utilisée par un serveur Web comme Apache Tomcat. Oracle lui-même utilise un port par défaut de 1521. Voir également Cet oracle Documentation JDBC .
En outre, vous avez oublié d'appeler Si vous attendez plusieurs rangées dans un ensemble de résultats, Ensuite, vous devez utiliser ou si vous n'attendez qu'une ligne, vous pouvez également aller de l'avant avec un Pour plus d'astuces et des exemples d'utilisation de Basic em> JDBC de la bonne manière (aussi dans JSP / servlet), vous pouvez trouver Cet article utile. La façon dont vous avez fermé la déclaration et la connexion par exemple est sujette aux fuites de ressources. Chargement également que le pilote JDBC sur la demande d'obtenir est inutilement coûteux. Faites-le juste une fois lors de l'initialisation du démarrage ou du servlet d'application. P> p> RESUNTS # Suivant () Code>
. Cela définira le curseur sur la ligne suivante de la série de résultats. L'ensemble de résultats est renvoyé avec le curseur avant em> la première ligne. Tout getxxx () code> appelle sur le (code> ResultatsSet code> échouera si vous ne déplacez pas le curseur. P>
pendant code> boucle: p>
si code> Énoncé: p>
Quand j'ai débogué le programme, j'ai trouvé que l'exception projetée à la connexion Con = drivermanager.geconnection ("JDBC: Oracle: mince: @Localhost: 808 0: Orcl", "Système", "Tiger"); Pouvez-vous s'il vous plaît passer à travers cette ligne
Corrigez l'URL de connexion en premier. Oracle n'écoute certainement pas sur le port 8080. C'est généralement Tomcat qui écoute sur 8080 et ce n'est pas un serveur DB. Oracle utilise par défaut 1521.
Je vois dans l'autre commentaire que vous avez reçu un ora 12505 lorsque vous utilisez 1521, dans ce cas, vérifiez simplement ora-code.com: ora-12505.ora-code.com
package testing; import java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; import java.sql.*; public class OracleJDBC { public static void main(String[] argv) { System.out.println("-------- Oracle JDBC Connection Testing ------"); try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { System.out.println("Where is your Oracle JDBC Driver?"); e.printStackTrace(); return; } System.out.println("Oracle driver registered"); Connection conn=null; try { conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orclh", "scott", "tiger"); Statement stmt= conn.createStatement(); ResultSet r=stmt.executeQuery("Select * from emp"); while(r.next()){ String str= r.getString("ename"); System.out.println (str); } } catch (SQLException e) { System.out.println("Connection Failed! Check output console"); e.printStackTrace(); return; } } }
Je pense que cette exception est due au problème de l'environnement interne du système d'exploitation. P>
J'ai le même problème avec type 4 em> pilote. Mais type 1 em> pilote ne donne pas à cette exception.
Donc, j'utilise actuellement type 1 em> strong> pilote. P>
Vérifier le numéro de port, Installez VMware fort> sur votre ordinateur, Installez le système d'exploitation, puis le programme fonctionnera avec le pilote type 4 em>. p> sid code> au
tnsnames.ora code> p>
c: \ oracexe \ app \ oracle \ product \ 10.2.0 \ serveur \ Network \ admin \ Sample \ tnsnames.ora code> p> p>
Je sais que ce fil est un peu vieux, mais voici ce qui a fonctionné pour moi. P>
Vérifiez la connexion à l'aide d'un client Oracle DB comme le développeur SQL ou quelque chose d'autre pour vous assurer que la chaîne de connexion fonctionne et capable de se connecter à la DB avec elle. Si vous utilisez Oracle DB Express Edition, qui est XE, SID est XE et le port est 1521, peu importe où le client Web est en cours d'exécution. Vous pouvez également vérifier cela à partir des paramètres du client Web et d'autres endroits. P>
("jdbc:oracle:thin:@localhost:1521:abcd","your_db_name","your_password")
Cette question a déjà reçu une réponse acceptée et adoptée il y a 3 mois et votre réponse tardive n'ajoute rien de nouveau.
@ Christiankönig quand j'ai cherché cela je n'ai pas eu la réponse appropriée.
Vous êtes sur la page exacte où la réponse est écrite - faites défiler vers le sommet et lisez la réponse fournie par Balusc - elle commence par Premièrement, l'URL de connexion est fausse. La poste 8080 est normalement utilisée par un serveur Web comme Apache Tomcat. Oracle lui-même utilise un port par défaut de 1521 i>.