Où dois-je mettre les fichiers SQL dans mon projet Java?
J'ai un projet en Java, qui comprendra un certain nombre de grandes instructions SQL pour interroger la base de données. Ma question est: où dois-je les conserver?
Je suis assez sûr que je veux que chaque déclaration de son propre texte, fichier géré par le contrôle de code source. En tant que Java ne supporte pas le multi-ligne de chaînes je ne peux pas mettre plus facilement le SQL dans mon .java
fichiers et je ne pense pas que je veux pas de toute façon. Au moment de la construction, je peux mettre ces fichiers texte dans le BOCAL et obtenir le contenu avec chargeur de classe.getResourceAsStream()
.
Donc mon problème se trouve dans les répertoires qui dois-je mettre ces fichiers et que dois-je les appeler. Idéalement, j'aimerais que les gens de dire à partir de la .sql
fichier de classe Java utilise. Ce que je certainement ne veux pas, c'est un répertoire unique, plein de lots de fichiers appelés des choses comme report1.sql
et report3.sql
et ainsi de suite.
J'ai tendance à les mettre dans le répertoire du paquet avec tous les .java
fichiers, mais j'ai un collègue qui n'aime pas avoir quelque chose d'autre que .java
fichiers dans cet arbre. Ceci conduit donc à l'alternative d'un répertoire distinct de la structure qui reflète les packages Java, mais cela semble être une surcharge inutile.
Donc, je serais intéressé d'entendre ce que vous faites avec vos fichiers SQL.
Nous sommes à l'aide de Netbeans 6.5 dans le cas qui affectent vos réponses.
(Cette question est similaire, mais malheureusement, les réponses sont très C# spécifiques, ce qui est bon pour cette question, mais mauvais pour moi.)
- Voir ce fil stackoverflow.com/questions/174171/...
- Voir aussi stackoverflow.com/questions/7686334/...
Vous devez vous connecter pour publier un commentaire.
Dans une Java/Maven réglage de nous utiliser comme de la hiérarchie du projet:
Et pour répondre à votre question: je voudrais mettre le SQL-les fichiers ainsi que les ressources sous src/main/resources.
Vous voudrez peut-être avoir un coup d'oeil à ce fil.
Je serais tenté de mettre les requêtes SQL dans une
SQL
dossier src. C'est ce qui sépare le code Java à partir de SQL:Sinon, vous pouvez les placer dans de simples fichiers de propriétés à l'aide de la structure ci-dessus:
Aussi, je pense qu'il vaut la peine de mentionner que vous pouvez mettre plusieurs lignes de chaînes en classe Java si vous préférez prendre cette route:
Je suis totalement d'accord avec boutta. Maven est un standard pour le dossier src de gestion. Avez-vous pensé à ranger votre SQL en XML? En gardant les requêtes dans un fichier unique peut rendre plus facile à gérer SQL. Ma première intuition est quelque chose de simple:
Pour analyser le fichier, l'utilisation de xpath ou même SAX pour créer une carte de requêtes identifié par l'id de requête fast recherches.
Pour être conforme à http://maven.apache.org/pom.html#Resources ce lieu peut être:
src/main/sql
src/main/upgrade
- pour les scripts de mise à jour entre les versionssrc/main/db
,src/main/schema
,src/main/ddl
- pour le projet en cours DB schéma, pour la phase initiale de déploiement de projetsrc/main/NAME
répertoireD'autres choses à prendre en compte:
Vxx__YYY.sql
les scripts situés dansclasspath:resources/db/migration
si vous les placez dans le projetsrc/main/resources/db/migration
répertoire.Noter que les IDE ne supporte pas l'écoute des répertoires, puis d'autres
src/main/java
etsrc/main/resources
dans project viewer, pour que l'utilisation visionneuse de fichier.C'est une légère riff sur la question initiale, mais sans doute le plus complexe, le SQL est le plus qu'il appartient à la base de données (ou dans une couche de services) et non pas dans votre code Java.
Sinon, comme le code de l'échéance, les questions de ce genre surviennent.