2010-06-04 4 views
3

J'ai donc quelque chose comme ça dans mon boot.scala:Aide Connexion ascenseur à une base de données Oracle

object DBVendor extends ConnectionManager { 
def newConnection(name: ConnectionIdentifier): Box[Connection] = { 
    try { 
    Class.forName("oracle.jdbc.driver.OracleDriver") 
    val dm = DriverManager.getConnection("jdbc:oracle:thin:@hostname:1521:orcl", "username", "password"); 

    Full(dm) 
    } catch { 
    case e : Exception => e.printStackTrace; Empty 
    } 
} 
def releaseConnection(conn: Connection) {conn.close} 
} 

Couple questions rapides ... Je sont Comment puis-je configurer le pilote pour se connecter? Le @hostname de ce que je vois a été pour des bases de données locales mais le mien est distant ... J'ai toutes les informations pour me connecter via le sqldeveloper que j'utilise et j'ai pensé que tout ce dont j'aurais besoin est le nom d'hôte.
Le nom d'hôte est-il tout ce qui doit y aller si c'est tout ce dont j'avais besoin? ou aurais-je besoin d'une sorte d'adresse absolue?

Répondre

0

Tant que la machine exécutant le code peut voir le nom d'hôte (que vous pouvez tester avec un simple ping), c'est tout ce dont vous avez besoin.

Vous aurez besoin du pilote oracle jdbc approprié dans le chemin d'accès Java. Vous pouvez obtenir les derniers pilotes à partir de downloads.oracle.com

+0

Je sais que la connexion fonctionne comme je l'ai même ouvert la base de données en utilisant la même URL et nom d'utilisateur/mot de passe que j'utilise dans le code. Je l'ai ouvert en éclipse juste pour m'assurer qu'eclipse puisse s'y connecter. J'ai le pilote mince d'oracle que j'ai téléchargé dans les bibliothèques référencées que je crois quand je l'ai ajouté au chemin de la classe ... mais j'obtiens toujours une erreur qu'il ne peut pas le trouver. – user357872

+0

Quelle est l'erreur exacte. Il n'est pas clair s'il ne peut pas trouver l'hôte ou ne peut pas trouver le pilote. Si c'est l'hôte, essayez l'adresse IP plutôt que le nom d'hôte. –

0

Vous devrez modifier "nom d'hôte" par l'adresse IP du serveur (comme l'indique Gary, si vous ne connaissez pas l'adresse IP que vous pouvez tester avec " ping nom d'hôte ").

Dans Lift, le chemin par défaut pour le pilote JDBC est

% Votre chemin de projet de%/src/main/webapp/WEB-INF/lib

Probablement, vous devez créer le dossier de la lib. Si vous avez un Client d'Oracle installé, vous pouvez copier le pilote correspond le de:

% votre chemin client Oracle%/jdbc/lib

0

Le @hostname dans la chaîne de connexion représente le nom d'hôte du machine physique qui héberge la base de données. Le nom d'hôte de l'hôte de base de données et son adresse IP doivent figurer dans le fichier hosts de votre système d'exploitation. Vous pouvez également utiliser une adresse IP codée en dur dans la chaîne de connexion. Le @hostname ne fait pas référence à votre "base de données locale". Si l'application client s'exécute sur le même serveur que celui qui héberge la base de données, vous pouvez utiliser @localhost dans la chaîne de connexion. orcl représente un service Oracle. Cette information doit être fournie par votre administrateur de base de données.

Vérifiez également ce lien sur: http://www.java-tips.org/other-api-tips/jdbc/how-to-connect-oracle-server-using-jdbc-4.html

Questions connexes