2017-05-04 1 views
0

Je comprends qu'il est utile d'utiliser la classe org.hsqldb.server.Server lors de la création d'un serveur hsqldb par programmation.Comment utiliser la classe org.hsqldb.jdbc.JDBCConnection de l'API HSQLDB

J'ai toujours utilisé la classe Java SDK (java.sql.Connection) pour me connecter au serveur et je pense qu'il suffit de se connecter pour savoir si le serveur est basé sur la mémoire ou sur les fichiers.

Pourquoi avons-nous besoin de la classe org.hsqldb.jdbc.JDBCConnection de l'API hsqldb?

+0

Merci à AmitK pour l'édition de la question !! – Bll

+0

Merci Mrak pour avoir édité ma question !! – Bll

Répondre

0

Il n'y a pas de 'classe' java.sql.Connection: c'est une interface. JDBC est une API composée d'interfaces (et de classes de support). Ces interfaces doivent être implémentées par chaque pilote JDBC pour être en mesure de faire quoi que ce soit. Lorsque vous utilisez HSQLDB, vous utilisez l'implémentation java.sql.Connection appelée org.hsqldb.jdbc.JDBCConnection; Cela contient les spécificités du fonctionnement de HSQLDB (que JDBC ne connaît pas). Cependant, vous n'avez généralement besoin d'y accéder que via l'interface définie dans JDBC; c'est même préférable pour la portabilité.Bref, si ce n'était pas pour org.hsqldb.jdbc.JDBCConnection, vous ne seriez même pas capable de vous connecter à un HSQLDB.

+0

** Mise en œuvre par rapport à l'interface ... ** Merci beaucoup !! – Bll

0

Je n'ai pas beaucoup travaillé avec HSQLDB mais la documentation de l'API semble être la meilleure source pour votre question.

Documentation Class JDBCConnection dit -

JDBC 4.0 Notes:

À partir de JDBC 4.0 (JDK 1.6), les méthodes de DriverManager getConnection et getDrivers ont été améliorés pour soutenir le service Standard Edition Java Mécanisme du fournisseur. Lorsqu'il est construit sous Java runtime qui prend en charge JDBC 4.0, les fichiers de distribution HSQLDB contenant l'implémentation du pilote incluent également le fichier META-INF/services/java.sql.Driver. Ce fichier contient le nom complet de la classe qualifiée ('org.hsqldb.jdbc.JDBCDriver') de l'implémentation HSQLDB de java.sql.Driver. Par conséquent, sous JDBC 4.0 ou supérieur, les applications n'ont plus besoin de charger explicitement le pilote JDBC HSQLDB à l'aide de Class.forName(). De cours , les programmes existants qui chargent les pilotes JDBC en utilisant Class.forName() continueront à fonctionner sans modification.

Donc je suppose que vous pouvez continuer avec du code standardisé.

Cette classe peut avoir des méthodes supplémentaires spécifiques à HSQLDB.

En outre, vous devrez taper moulé sous pression si vous prévoyez d'utiliser ces méthodes spécifiques,

JDBCConnection connection = 
      (JDBCConnection) DriverManager.getConnection(url, connProperties); 

En ce qui concerne votre autre question, le motif est - <url>[;key=value]*-à-dire que vous placez un point-virgule après url puis spécifiez clés - valeurs key=value format. Chaque key=value doit être séparé par un point-virgule.

par exemple. jdbc:hsqldb:hsql://localhost/cities;user=bill;password=password En d'autres termes, vous ajoutez un point-virgule avant d'ajouter une paire valeur/clé et pas de point-virgule pour la dernière paire valeur/clé.

+0

Merci Sabir ,. Ça aide beaucoup. Une question supplémentaire si cela ne vous dérange pas. Sur la même page de l'API, il y a ** Information spécifique à HSQLDB ** à la fin. Il dit: Depuis 1.7.2, les propriétés de connexion () peuvent être ajoutées à la connexion de la base de données , en utilisant le formulaire: ' [; key = value] *' Pourriez-vous expliquer un peu ou montrer un exemple simple? J'ai du mal à comprendre cela. – Bll

+0

@Bll Vous devriez vraiment avoir posé cette question comme une nouvelle question. –

+0

Merci Mark, je vais créer une nouvelle question pour cette partie de l'API. – Bll