2015-09-16 1 views
1

Je souhaite référencer PostgreSQL avec le framework YCSB. Par conséquent je suis le instructions du site de projets de Github pour employer la bibliothèque de JDBC.Installation du pilote JDBC dans le projet YCSB

L'exemple donné indique que vous avez besoin d'un pilote JDBC que j'ai téléchargé depuis le site this. Le fichier que j'ai utilisé (je ne sais pas si c'est le bon) est le JDBC3 Postgresql Driver, Version 9.3-1103. Maintenant, je ne sais pas où placer le fichier jar téléchargé pour exécuter le projet. Jusqu'à présent, j'ai essayé de placer le JAR dans le dossier bin avant d'exécuter la commande $ ./bin/ycsb load jdbc -s -P workloads/workloada. Cela a entraîné l'erreur suivante.

Error in database operation: java.sql.SQLException: No suitable driver found for jdbc:postgresql://127.0.0.1:5432/ycsb?user=postgres&password=password 

Il est évident que le pilote plaçant JAR dans le dossier bin ne se sont pas avéré être le bon endroit ou peut-être il est tout simplement le mauvais JAR. Quelqu'un peut-il me dire où je dois placer le conducteur et si le pot téléchargé est le bon?

+0

Si vous utilisez Maven, ajoutez simplement une dépendance à cette bibliothèque. Sinon, assurez-vous que le pilote est dans un dossier contenant tous les jars qui seront placés dans le classpath de l'exécution de l'application, peut-être lib ou quelque chose. Ceci est indiqué ici: ** Assurez-vous que le * .jar est disponible sur votre chemin de classe, en plus de ycsb.jar ** (pris et adapté du lien sur * instructions * dans la première phrase). –

+0

Merci pour la réponse rapide. Comment ajouter une dépendance à la bibliothèque? – maxkra

Répondre

1

Ce qui m'a aidé était le suivant. Bien que je suis sûr qu'il y a de meilleures façons de le faire. J'ai ajouté la dépendance suivante à la POM.xml

<dependency> 
    <groupId>com.postgres.driver</groupId> 
    <artifactId>postgresdriver</artifactId> 
    <version>9.3</version> 
    <scope>system</scope> 
    <systemPath> "Path to JAR on filesystem" </systemPath> 
</dependency> 

groupId et artifactId peut être choisi que vous voulez et version est facultative. Le scope doit être réglé sur system et le systemPath doit pointer vers le JAR sur le système de fichiers (par exemple /home/user/driver.jar)

0

Le pot a juste besoin d'être sur le chemin de classe, d'une manière ou d'une autre. Vous pouvez simplement indiquer le chemin du pot comme ceci:

./bin/ycsb load jdbc -s -P workloads/workloada -cp /path/to/jar 

-cp vous permet d'ajouter manuellement les choses au classpath