2010-04-15 6 views
0

Est-il possible d'écrire des méthodes de base de données dans le fichier de propriétés, comme certaines requêtes de base de données et peuvent être accédées en utilisant des servlets qui peuvent réduire le code? Webapp peut accéder au fichier de propriétés.servlets et fichier de ressources

+0

Vous devrez probablement fournir plus de contexte que celui-ci. En règle générale, cependant, il est généralement recommandé d'avoir accès à votre base de données - et autant de logique métier que possible - du côté du serveur, d'autant plus que vous faites moins confiance à vos utilisateurs. En ce qui concerne les "fichiers de propriétés", je ne sais pas de quoi vous parlez. – Steve

+0

@Steve: http://java.sun.com/docs/books/tutorial/essential/environment/properties.html C'est comme les fichiers '.ini' pour Java. – BalusC

+0

@srikanth: votre question est vague. "Méthodes de base de données", qu'est-ce que c'est? Vous ne voulez pas dire des instructions SQL? Ou voulez-vous dire le vrai code Java? Pourquoi voudriez-vous faire ça? – BalusC

Répondre

0
  1. un fichier propeties peut avoir des paires clé-valeur comme query1 = select quelque chose de quelque part

Vous pouvez combiner 1 et 2 afin d'exécuter des requêtes SQL en webapp, mais je ne suis pas sûr qu'il réduira le code (vous devez toujours ouvrir la connexion db, lire les rs, fermer la connexion, etc.)

+0

merci à tous ... est-il possible d'écrire des méthodes dans un fichier de propriétés? – srikanth

0

Bien sûr, vous pouvez placer vos requêtes dans un fichier de propriétés mais si vous utilisez JDBC, le code dépend beaucoup de ces requêtes. Le nombre de paramètres et leur ordre ne doivent pas être modifiés, il en va de même pour les résultats, donc je ne vois pas beaucoup d'avantages à le faire.

0

Vous pouvez stocker les requêtes dans un fichier auquel la webapp peut accéder, puis utiliser des instructions préparées pour les exécuter. En faisant cela, vos chaînes de requêtes sont dans un fichier externe, tout ce que vous faites dans le code est de remplir les paramètres, mais vous devrez d'abord lire les chaînes de requête de ce que vous appelez "fichier de propriétés".

Exemple:

String query; // read the query from the "properties file" 

//Suppose you put "INSERT INTO BOOKS (AUTHOR, TITLE) VALUES (?, ?);" 

PreparedStatement ps = conn.prepareStatement(query); 
ps.setString(1, "param1"); 
ps.setString(2, "param2"); 

ps.executeUpdate(); 
2

Je l'ai vu le travail DB fait toutes sortes de façons de SQL directement dans le codage dur chaque méthode que l'accès une base de données, SQL stockées dans les chaînes statiques dans les fichiers centraux, pour qu'il soit stocké dans les fichiers de propriétés et enfin bien sûr ORMs tels que Hibernate. J'ai même vu SQL stocké dans des DBs!

Je ne recommanderais jamais de stocker les requêtes SQL (ou ORM) loin du code qui en a besoin. La raison simple est que, d'après mon expérience, en rompant la connexion, les développeurs commencent à réutiliser et à utiliser les requêtes. Au fil du temps, les développeurs perdent la trace de la requête utilisée et commencent à en ajouter de nouveaux pour éviter le risque de casser des choses. Finalement, ils finissent avec des fichiers pleins de requêtes sans aucune idée de ceux qui sont même utilisés. Le pire que j'ai jamais vu était où les développeurs centralisaient le SQL et le freinaient en parties individuelles. Il était presque impossible de dire si un changement briserait les choses. L'argument initial pour séparer les requêtes est généralement «maintenance» ou «au cas où nous changerions la base de données», etc. Mais à la fin de la journée, cela devient un problème plus important que ce que nous avions l'intention de résoudre.

Pour résumer, je vous recommande de stocker les requêtes aussi près du code qui les utilise que possible. Hibernate et similaire vont un long chemin à faire de cette solution pragmatique.

Questions connexes