Je suis un débutant dans le développement Web lié à Java et je n'arrive pas à obtenir un programme simple avec JDBC. J'utilise Oracle 10g XE standard et l'IDE Eclipse EE. À partir des livres et des pages Web que j'ai vérifiés jusqu'à présent, j'ai réduit le problème à une URL de base de données incorrectement écrite ou à un fichier JAR manquant. J'obtiens l'erreur suivante:
Java.sql.SQLException: aucun pilote approprié trouvé pour jdbc: Oracle: //127.0.0.1: 8080
avec le code suivant:
import Java.sql.*;
public class DatabaseTestOne {
public static void main(String[] args) {
String url = "jdbc:Oracle://127.0.0.1:8080";
String username = "HR";
String password = "samplepass";
String sql = "SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE LAST_NAME='King'";
Connection connection;
try {
connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
System.out.println(statement.execute(sql));
connection.close();
} catch (SQLException e) {
System.err.println(e);
}
}
}
Quel est le format approprié pour une URL de base de données, de toute façon? Ils sont souvent mentionnés mais je n'ai pas pu trouver de description.
EDIT (la résolution):
Sur la base de la réponse de duffymo, j'ai obtenu ojdbc14.jar
de site de téléchargement d'Oracle et l'a déposé dans les bibliothèques référencées du projet Eclipse. J'ai ensuite changé le début du code en
...
// jdbc:Oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:Oracle:thin:@GalacticAC:1521:xe";
...
et ça a marché.
Regardez ici .
Votre URL est tout à fait incorrecte. Devrait ressembler à ceci:
url="jdbc:Oracle:thin:@localhost:1521:orcl"
Vous n'enregistrez pas non plus de classe de pilote. Vous voulez télécharger le JAR du pilote léger, le mettre dans votre CLASSPATH et rendre votre code plus semblable à this .
MISE À JOUR: Le "14" dans "ojdbc14.jar" signifie JDK 1.4. Vous devez faire correspondre la version de votre pilote avec le JDK que vous utilisez. Je parie que cela signifie JDK 5 ou 6.
Il existe deux façons de configurer cela. Si vous avez un SID, utilisez ce format (plus ancien):
jdbc:Oracle:thin:@[Host][:PORT]:SID
Si vous avez un nom de service Oracle, utilisez ce format (plus récent):
jdbc:Oracle:thin:@//[Host][:PORT]/SERVICE
Source: cette page OraFAQ
l'appel à getConnection()
est correct .
En outre, comme l'a dit duffymo, assurez-vous que le code de pilote réel est présent en incluant ojdbc6.jar
Dans le chemin de classe, où le numéro correspond à la version Java Java que vous utilisez).
Le format correct pour l'URL peut être l'un des formats suivants:
jdbc:Oracle:thin:@<hostName>:<portNumber>:<sid>; (if you have sid)
jdbc:Oracle:thin:@//<hostName>:<portNumber>/serviceName; (if you have Oracle service name)
Et n'y mettez pas d'espace. Essayez d'utiliser 1521 comme numéro de port. sid (nom de la base de données) doit être le même que celui qui se trouve dans les variables d'environnement (si vous utilisez Windows).
si vous utilisez Oracle 10g expree Edition, alors:
1. pour charger la classe, utilisez DriverManager.registerDriver (new Oracle.jdbc.OracleDriver());
2. pour vous connecter à la base de données, utilisez Connection conn = DriverManager.getConnection("jdbc:Oracle:thin:username/password@localhost:1521:xe");
String Host = <Host name>
String port = <port>
String service = <service name>
String dbName = <db schema>+"."+service
String url = "jdbc:Oracle:thin:@"+Host+":"+"port"+"/"+dbName
DriverManager.registerDriver(new Oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:Oracle:thin:@machinename:portnum:schemaname","userid","password");
Je ne suis pas un développeur Java donc malheureusement je ne peux pas commenter votre code directement mais j'ai trouvé cela dans un Oracle FAQ concernant la forme d'une connexion) chaîne
jdbc:Oracle:<drivertype>:<username/password>@<database>
Depuis Oracle JDBC FAQ
http://www.Oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_
J'espère que ça t'as aidé