Je suis juste allé à travers la configuration sqlite3 avec Tomcat 7. Tout fonctionne maintenant pensé que je partage ma configuration.
- Téléchargez le pilote JDBC (org.sqlite.JDBC) qui se trouve dans sqlite-jdbc-3.7.2.jar (ou quelle que soit la version la plus récente). https://bitbucket.org/xerial/sqlite-jdbc/downloads
et copiez-le dans votreTomcat/lib
- Vous pouvez copier la base de données SQL sqlite où vous le souhaitez. Pour ma configuration, j'ai créé un répertoire 'dbs' sous mon installation tomcat, et l'ai mis là.
Maintenant, configurez votre application. Si vous n'avez pas de fichier META-INF/context.xml, créez-en un. Ce fichier minimal:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/yourdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.sqlite.JDBC"
url="jdbc:sqlite:/${catalina.home}/dbs/yourDB.db"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory">
</Resource>
</Context>
Ensuite, ajoutez ce qui suit WEB-INF/web.xml:
<resource-ref>
<description>Reviews Database</description>
<res-ref-name>jdbc/yourdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
À ce stade, vous devriez être bon d'aller. Voici quelques exemples de code pour accéder à la base de données (j'ai une table « admin » avec une colonne « nom d'utilisateur »):
public String getName() {
LOG.info("getting name : " + this.name);
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/yourdb");
Connection conn = ds.getConnection();
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("select username from admin");
this.name = rs.getString(1);
} catch (SQLException se) {
LOG.info(se.toString());
} catch (NamingException ne) {
LOG.info(ne.toString());
}
return this.name;
}
Note: certains distros tomcat ne viennent pas avec tomcat.dbcp par défaut, si vous rencontrez des problèmes, il peut être plus facile de référencer la classe dbcp fournie avec les communs, org.apache.commons.dbcp.BasicDataSourceFactory. J'ai eu ce problème avec tomcat.dbcp pas inclus dans mon installation de tomcat7 et une fois que j'ai changé la référence dans context.xml tout fonctionnait bien.
Merci pour votre réponse rapide. Si je ne peux pas utiliser le pool de connexion proposé par Tomcat, plusieurs utilisateurs peuvent-ils se connecter au même fichier .db ou dois-je mettre en place une sorte de pool de connexion basique car plusieurs utilisateurs peuvent se connecter simultanément à la même base de données ? –
Si plusieurs utilisateurs se connectent au même fichier db, le regroupement de connexions est possible sinon, vous perdez du temps. –