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.jarsite 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é.

32
demandé sur Pops 2009-06-28 06:46:09

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.

33
répondu duffymo 2014-01-29 18:07:12

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.

37
répondu Pops 2011-12-13 18:33:19

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).

14
répondu Clara 2013-03-02 13:14:15

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");

3
répondu Ketan Vishwakarma 2013-07-12 22:11:29

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>

Oracle JDBC FAQ

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03

Hope qui aide

1
répondu Crippledsmurf 2018-08-17 07:27:47
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());         
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");
0
répondu Steve Prior 2012-06-22 13:59:06