Java ではじめる
PetraDBは標準的なJDBC 4ドライバーを提供しているので、おなじみのjava.sql API — Connection、Statement、ResultSet、PreparedStatement — を使用できます。
インストール
Section titled “インストール”Maven:
<dependency> <groupId>io.github.edadma</groupId> <artifactId>petradb-jdbc</artifactId> <version>1.5.0</version></dependency>Gradle:
implementation 'io.github.edadma:petradb-jdbc:1.5.0'ドライバーは自動登録されるため、Class.forName()は不要です。
最初のクエリを実行する
Section titled “最初のクエリを実行する”import java.sql.*;
public class Main { public static void main(String[] args) throws SQLException { Connection conn = DriverManager.getConnection("jdbc:petradb:memory"); Statement stmt = conn.createStatement();
stmt.executeUpdate(""" CREATE TABLE users ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT ) """);
stmt.executeUpdate("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')"); stmt.executeUpdate("INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com')");
ResultSet rs = stmt.executeQuery("SELECT id, name, email FROM users ORDER BY id"); while (rs.next()) { System.out.printf("%d: %s <%s>%n", rs.getInt("id"), rs.getString("name"), rs.getString("email")); }
rs.close(); stmt.close(); conn.close(); }}出力:
1: Alice <alice@example.com>2: Bob <bob@example.com>永続ストレージ
Section titled “永続ストレージ”再起動後もデータを保持するには、ファイル接続URLを使用します。
Connection conn = DriverManager.getConnection("jdbc:petradb:file:mydata.petra");ファイルは初回使用時に作成されます。サポートされる拡張子:
| 拡張子 | ストレージタイプ |
|---|---|
.petra | クラッシュセーフな永続ストレージ |
.ptxt | 人間が読めるテキスト形式 |
プリペアドステートメント
Section titled “プリペアドステートメント”PreparedStatement ps = conn.prepareStatement( "SELECT * FROM users WHERE name = ? AND id > ?");ps.setString(1, "Alice");ps.setInt(2, 0);ResultSet rs = ps.executeQuery();トランザクション
Section titled “トランザクション”conn.setAutoCommit(false);try { stmt.executeUpdate("UPDATE accounts SET balance = balance - 100 WHERE id = 1"); stmt.executeUpdate("UPDATE accounts SET balance = balance + 100 WHERE id = 2"); conn.commit();} catch (SQLException e) { conn.rollback();}次のステップ
Section titled “次のステップ”バッチ操作、メタデータ、型マッピング、サーバー接続を含む完全なAPIについては、JDBCリファレンスをご覧ください。