JavaサーブレットでSQLiteを使う場合のパス指定方法

通常のJavaアプリでSQLiteは使ったことがあったけど、サーブレットだとパス指定に戸惑ったのでメモ。

JavaサーブレットだとカレントディレクトリがEclipseと本番環境で違ったりするので、以下のように書くと手軽。
Windows, Tomcat7で動作確認。

Class.forName("org.sqlite.JDBC");
database_path = getServletContext().getRealPath("WEB-INF/database.db")
DriverManager.getConnection("jdbc:sqlite:" + database_path);

サーブレットコンテキストベースの相対パスから絶対パスを求めるので、コンテキスト名やローカルの絶対パスなども考えなくて済む。
WEB-INF以下に置けば、http経由ではアクセスできないので安心。

関連記事


  1. Javaサーブレットにおける部分URLやファイルパスの取得
  2. DDLを自動生成してJavaと各DBのデータ型を比較してみた
  3. アノテーションを活用した影響調査にトライしてみた
  4. Groovyの == 演算子と equals() は厳密に同じではない
  5. 既存コードへのCheckstyle導入におけるルールの選定
  6. Checkstyleで汎用的に使えそうなルールをピックアップしてみた
  7. JaCoCoでJavaのテストカバレッジのレポートを出力する

comments powered by Disqus