JavaでSQLiteにJDBC接続してselectするサンプルです。
(確認環境:Java 8,SQLite 3.26.0,Eclipse 4.7,Windows10)
目次
SQLの実行 | SQLiteへ接続してselectする |
プレースホルダ | |
PreparedStatement | |
ドライバ | JDBCドライバを取得する |
&環境 | 接続先のデータベースとテーブル |
SQLiteへ接続してselectする
SQLiteへ接続してselectするサンプルです。
package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test1 {
public static void main(String[] args) {
final String URL
= "jdbc:sqlite:E:\\dev\\sqlite-test\\test1.db";
// final String USER = "";
// final String PASS = "";
final String SQL = "select * from employee where id =? ;";
try(Connection conn =
DriverManager.getConnection(URL);
PreparedStatement ps = conn.prepareStatement(SQL)){
ps.setInt(1,2);
try(ResultSet rs = ps.executeQuery()){
while (rs.next()) {
System.out.println(
rs.getInt("id") + " " +
rs.getString("name") + " " +
rs.getString("romaji"));
}
};
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("処理が完了しました");
}
}
}
12行目は、SQLiteのデータベースの場所を指定しています。
13,14行目のユーザーとパスワードは、SQLiteにはありません。
15行目は、プレースホルダを使用したSQLです。?の箇所はプレースホルダです。
17,18行目は、データベースへ接続しています。
17~19行目は、try-with-resources構文です。リソースを自動でクローズします。
21行目は、プレースホルダに値をセットしています。1つめの引数はプレースホルダの位置です。2つめの引数は値です。
プレースホルダ
- SQL文中の(?)がプレースホルダです。動的に値をセットできます。
- 入力される不正な文字を抑止できるのでSQLインジェクション対策になります。
- 固定文字列のSQLの部分がプリコンパイルされるので実行速度が上がります。
- place=場所、holder=入れものです。
PreparedStatement
プリコンパイルされたSQL文を表すオブジェクトです。
Prepared=準備された、Statement=文です。
以下はJava8 API仕様のPreparedStatementインターフェースのリンクです。https://docs.oracle.com/javase/jp/8/docs/api/java/sql/PreparedStatement.html
JDBCドライバを取得する
SQLiteのJDBCドライバは、以下のmvnrepositoryのサイトからmavenまたはjarファイルで取得します。
https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
jarファイルから取得する場合
上記遷移先の画面で取得したいバージョンの数値をクリックして、以下の画面のjarの箇所をクリックするとダウンロードできます。
ダウンロードしたjarファイルを任意の場所に配置します。
例:sqlite-jdbc-3.27.2.1.jar
JDBCドライバをクラスパス(ビルドパス)に追加する
JDBCドライバ(sqlite-jdbc-3.27.2.1.jar)をクラスパスに追加します。
クラスパスに追加する手順は、以下を参照願います。
Eclipse jarファイルをクラスパスに設定する方法
接続先のデータベースとテーブル
接続先のデータベースとテーブルについては、以下を参照願います。
SQLiteのインストールとSQLを実行するサンプル
関連の記事