Java SQLiteにJDBC接続してselectするサンプル

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 syain 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を実行するサンプル

関連の記事

Java SQLiteでinsert/update/deleteするサンプル
SQL INSERT文のサンプル
SQL UPDATE文とDELETE文のサンプル
SQL distinct 重複行を表示しないサンプル
SQL 複数の行をまとめる(集約関数/group by/having)

△上に戻る