Format de chaîne D'URL pour se connecter à la base de données Oracle avec JDBC
je suis un internaute novice dans le développement Web lié à Java, et je ne peux pas avoir un programme simple avec JDBC qui fonctionne. J'utilise Oracle 10g XE et L'Eclipse EE IDE. D'après les livres et les 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 mal écrite ou à un fichier JAR manquant. J'obtiens l'erreur suivante:
java.SQL.SQLException: aucun pilote adapté n'a été 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? On en parle beaucoup, mais je n'ai pas trouvé de description.
MODIFIER (la résolution):
D'après la réponse de duffymo, j'ai eu ojdbc14.jar
site de téléchargement D'Oracle et l'a laissé tomber dans les bibliothèques référencées du projet Eclipse. Puis j'ai changé le début du code
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
et ça a fonctionné.
6 réponses
ici.
votre URL est tout à fait incorrecte. Devrait ressembler à ceci:
url="jdbc:oracle:thin:@localhost:1521:orcl"
Vous n'inscrivez pas non plus de cours de conduite. Vous voulez télécharger le bocal de pilotes minces, le mettre dans votre chemin de classe, et faire votre code ressemble plus à .
mise à jour: le" 14 "dans" ojdbc14.jar" est synonyme de JDK 1.4. Vous devez faire correspondre votre version pilote avec le JDK que vous exécutez. Je parie que ça veut dire JDK 5 ou 6.
Il y a deux façons de le faire. Si vous avez un SID, utilisez ce (ancien) format:
jdbc:oracle:thin:@[HOST][:PORT]:SID
si vous avez un nom de service Oracle, utilisez ce (nouveau) format:
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
Source: this OraFAQ page
appel getConnection()
est correct.
aussi, comme l'a dit duffymo, assurez-vous que le code du pilote réel est présent en incluant ojdbc6.jar
dans le classpath, où le numéro correspond à la version Java, vous êtes utiliser.
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 ne pas mettre n'importe quel espace. Essayez d'utiliser 1521 comme numéro de port. sid (nom de base de données) doit être le même que celui qui est dans les variables d'environnement (si vous utilisez windows).
si vous utilisez oracle 10g expree Édition puis:
1. pour utilisation dans la classe de chargement
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
2. pour la connexion à la base de données à utiliser
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/password@localhost:1521:xe");
Je ne suis pas un développeur Java donc malheureusement je ne peux pas commenter votre code directement mais j'ai trouvé ceci dans une FAQ Oracle concernant la forme d'une chaîne de connexion
jdbc:oracle:<drivertype>:<username/password>@<database>
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03
Hope qui aide
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");