2010-02-24 5 views
2

Je ne me suis jamais connecté à une base de données en java auparavant. Puis-je savoir si je devrais accéder à une base de données derby avec une servlet?Comment connecter la base de données Derby avec Servlet?

J'ai vérifié ceci: How do I access a database from my servlet or JSP? Mais j'ai vu des commentaires sur l'article disant que c'est une mauvaise façon de se connecter. Quelqu'un pourrait-il m'expliquer ou me montrer la meilleure façon de coder pour accéder à ma base de données Derby?

Merci beaucoup.

Répondre

6

Ils sont en effet bien, en suggérant que. Nous n'accédons pas à la base de données directement à partir des Servlets ou des JSP, ces deux applications sont censées être des couches Web, n'est-ce pas?

Alors, que faire? Prenez un tutoriel JDBC. Le official one est un excellent choix ici. Cela vous donnera une bonne idée de la connexion à la base de données à partir de Java, et saisir l'API JDBC. Après cela, vous devriez aller lire sur DAO pattern, et comment nous employ that in real apps.

En outre, je pense que vous devriez également lire environ MVC pattern, parce qu'il me semble que vous n'êtes pas très clair sur ce point également. Une fois que vous avez compris tout cela et que vous venez avec une application comme jouet en utilisant toutes ces choses. La prochaine étape serait d'examiner le mécanisme Connection Pooling.

3

Étant donné que vous utilisez servelt, vous devez utiliser une ligne de conteneur Apache Tomcat. Vous devriez chercher à définir un pool de connexions comme celui-ci: http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html. Si vous utilisez un autre conteneur, la configuration sera similaire.

L'autre option consiste à créer un type de classe DBManager distinct qui prend en charge l'initialisation et le retour de la connexion. Cette classe que vous pouvez utiliser dans le servlet.

2

L'utilisation de JDBC et le pool d'applications de votre serveur d'applications constituent un bon début. Vous pouvez également utiliser une API pour vous faciliter la vie comme Hibernate.

2

C'est un "mauvais moyen", car il n'utilise pas de pool de connexions (géré par JNDI) pour obtenir des connexions. Bien que l'acquisition d'une connexion ne coûte "que" quelques centaines de millisecondes, cela a un impact dans un environnement multi-utilisateur occupé. Un pool de connexions s'inquiète de l'ouverture et de la fermeture des connexions et les libère immédiatement lors de chaque appel getConnection() afin qu'il ne coûte pratiquement pas de millisecondes. Si vous résumez cela dans un environnement multi-utilisateur occupé, les différences sont visibles.

Un pool de connexions doit généralement être configuré dans le style d'une source de données JNDI gérée par le servletcontainer concerné. Comme vous n'avez pas mentionné celui que vous utilisez, je peux au plus haut point à l'une de mes réponses qui contient un exemple ciblé Tomcat 6.0: here.

Espérons que cela aide.

Questions connexes