SQLite Javaからアクセス
今回はJavaを使ってSQLiteにアクセスしてみます。SQLiteについてはこちらをご参照下さい。
環境構築
Javaからアクセスするには、JDBCドライバを入手します。本家にはJDBCドライバはありませんが、斉藤 太郎さんが作成されたJDBCがよく使われているみたいです。
ここ (https://bitbucket.org/xerial/sqlite-jdbc/downloads/)で入手できます。
取得したJDBCのJarをEclipseのプロジェクトのビルドパスに追加します。
JavaでSQLiteにアクセス
JDBCの指定はorg.sqlite.JDBCを指定し、コネクション取得ではjdbc:sqlite:を指定し、後ろにSQLiteのデータファイルの相対パスか絶対パスを付けます。後は普通のJDBCの処理と同様です。
package testSqlite;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
try {
connectionTest();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* コネクションの取得
*
* @throws Exception 実行時例外
*/
public static void connectionTest() throws Exception {
Connection conn = null;
try {
// クラスのロード
Class.forName("org.sqlite.JDBC");
// コネクションの取得
conn = DriverManager.getConnection(
"jdbc:sqlite:C:\\work\\hp\\lib\\SQLite\\test.sqlite3");
// SELECTのテスト
selectTest(conn);
System.out.println("connectionTest_OK");
} catch (Exception e) {
System.out.println("connectionTest_NG");
throw e;
} finally {
if (conn != null) {
conn.close();
}
}
}
/**
* データ取得
*
* @param conn コネクション
* @throws SQLException SQL例外
*/
public static void selectTest(Connection conn) throws SQLException {
Statement stmt = null;
ResultSet rs = null;
// 項目名を格納する配列
ArrayList<String> clmnAry = null;
try {
// ステートメントの作成
stmt = conn.createStatement();
// SQLの実行
rs = stmt.executeQuery("SELECT * FROM TBL");
// 結果の表示
while (rs.next()) {
// 初回のみ項目名を取得
if (clmnAry == null) {
clmnAry = new ArrayList<>();
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 0; i < columnCount; i++) {
System.out.println(metaData.getColumnName(i + 1));
clmnAry.add(metaData.getColumnName(i + 1));
}
}
// データ取得(全項目)
for (String clmn : clmnAry) {
System.out.println(rs.getObject(clmn));
}
// データ取得(項目指定)
System.out.println(rs.getString("IDX"));
// データ取得(位置指定:1~)
System.out.println(rs.getString(1));
}
System.out.println("selectTest_OK");
} catch (Exception e) {
System.out.println("selectTest_NG");
throw e;
} finally {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
}
}
}
実行結果
IDX
VAL
1
HELLO
1
1
selectTest_OK
connectionTest_OK
ページのトップへ戻る