SQLiteでデータベース接続
【開発条件】
OS:Win7
IDE:Eclipse4.4(ルナ)
SQLite:ファイルバージョン3.8.11.1
SQLite-JDBCドライバ;sqlite-jdbc-3.8.11.1.jar
【SQLite】
■ダウンロード
公式SQLitのホームページより、SQLiteをダウンロードする。
下記はSQLiteの最新バージョンです。
旧バージョンSQLite 3.8.11.1は
こちらからダウンロードする
■インストール
・「sqlite-shell-win32-x86-3081101.zip」を任意のフォルダーに展開する。
・圧縮ファイルの展開のダイアログの設定
「参照」ボタンをクリックし、展開先を選び、「OK」をクリックする
・元の圧縮ファイルの展開画面に戻る
【SQLite-JDBCドライバ】
■ダウンロード
・bitbucketのホームから「
SQLite JDBC Driver」をダウンロードする
・sqlite-jdbc-3.8.11.1.jarを選択してクリックすると、ダウンロードが開始される
※SQLite-JDBCドライバのバージョンはSQLiteのバージョンに合わせる。
ダウンロードされたファイルは、先ほど作った「sqlite」に保存して置く
【データベースを作る】
・コマンドプロンプトからSQLiteのデータベース「testdb.sqlite」作成する
C:\xampp\sqlite>sqlite3.exe testdb.sqlite
SQLite version 3.8.11.1 2015-07-29 20:00:57
Enter ".help" for usage hints.
sqlite>
・テーブル「userinfo」を作成
sqlite> CREATE TABLE userinfo(
...> userid VARCHAR(10) PRIMARY KEY,
...> status INTEGER NOT NULL
...> );
・データを入れる
sqlite> INSERT INTO userinfo(userid, status) VALUES("aaaa1234", 0);
sqlite> INSERT INTO userinfo(userid, status) VALUES("zzzz9876", 2);
・表示する
sqlite> select * FROM userinfo;
aaaa1234|0
zzzz9876|2
【Eclipseでサーブレットの作成】
1.新規プロジェクトの作成
「ファイル」-「新規」-「その他」をクリックする
2.新規のダイアログ設定
動的Webプロジェクトをクリックし、「次へ」を押す
3.新規動的「Web プロジェクト」のダイアログ設定
プロジェクト名:SQLiteTest
と書き、「次へ」を押す
4.ソースフォルダーの設定
「次へ」を押すだけ
5.Webモジュールの設定
web.xmlデプロイメント記述子の生成をチェックし、「完成」を押す
6.クラスの作成
「SQLiteTest」-「src」をクリック
「src」-「新規」-「クラス」
7.サーブレットの設定
Javaパッケージ:a
クラス名:SQLiteTest
と設定して(任意でよい)、「完了」をクリックする
8.JDBCドライバの追加
・「SQLiteTest」-「src」-「a」-「SQLiteTest.java」を確認する。
・「SQLiteTest」-「WebContent」-「WEB-INF」-「lib」にダウンロードした「sqlite-jdbc-3.8.11.1.jar」をコピーする。
9.ビルドパスを通す
10.コードを書く
●メソッドの追加
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
●doGetメソッド内
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("org.sqlite.JDBC");
※パスを自分の環境に合わせる
conn = DriverManager.getConnection("jdbc:sqlite:C:/local/sqlite/testdb.sqlite");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT userid,status FROM userinfo");
response.setContentType("text/plain");
while (rs.next()) {
response.getWriter().write("userid=" + rs.getString("userid") + ", ");
response.getWriter().write("status=" + rs.getString("status") + "\n");
}
} catch(Exception e) {
e.printStackTrace();
} finally {
if (rs != null ) { try {rs.close(); } catch (SQLException e) {e.printStackTrace();} }
if (stmt != null ) { try {stmt.close(); } catch (SQLException e) {e.printStackTrace();} }
if (conn != null ) { try {conn.close(); } catch (SQLException e) {e.printStackTrace();} }
}
11.実行
・実行ボタンを押す
・完了ボタンを押す
12.結果
無事に表示されたら、OK