クライアント
クライアントライブラリは、実行中のPetraDBサーバーにHTTP経由で接続します。
インストール
Section titled “インストール”JavaScript / TypeScript
Section titled “JavaScript / TypeScript”npm install @petradb/clientlibraryDependencies += "io.github.edadma" %%% "petradb-client" % "1.5.0"接続オプション
Section titled “接続オプション”| オプション | デフォルト | 説明 |
|---|---|---|
host | "localhost" | サーバーのホスト名 |
port | 5480 | サーバーのポート |
username | — | Basic認証のユーザー名 |
password | — | Basic認証のパスワード |
JavaScript / TypeScript
Section titled “JavaScript / TypeScript”import { Session } from '@petradb/client';
const db = new Session({ host: 'localhost', port: 5480, username: 'admin', password: 'secret',});ステートレス使用
Section titled “ステートレス使用”connect()を呼び出さない場合、各execute()呼び出しはサーバー上の一時的なワンオフセッションで実行されます。これは最もシンプルなモードで、セッション管理が不要です。
const [{ rows }] = await db.execute('SELECT * FROM users');console.log(rows);ステートフル使用
Section titled “ステートフル使用”connect()を呼び出してサーバー側セッションを作成します。セッションIDは後続のすべてのexecute()呼び出しで自動的に送信されるため、トランザクションと一時的な状態がリクエスト間で保持されます。
await db.connect();
await db.execute('BEGIN');await db.execute("INSERT INTO users (name) VALUES ('Alice')");await db.execute('COMMIT');
const [{ rows }] = await db.execute('SELECT * FROM users');console.log(rows);
await db.close();import { Session } from '@petradb/client';
const db = new Session({ host: 'localhost', port: 5480 });
await db.connect();
await db.execute(` CREATE TABLE products ( id SERIAL, name TEXT NOT NULL, price NUMERIC(10,2), PRIMARY KEY (id) )`);
await db.execute("INSERT INTO products (name, price) VALUES ('Laptop', 999.99)");await db.execute("INSERT INTO products (name, price) VALUES ('Coffee', 4.50)");
const [{ rows }] = await db.execute('SELECT * FROM products ORDER BY price DESC');console.log(rows);// [{ id: 1, name: 'Laptop', price: 999.99 }, { id: 2, name: 'Coffee', price: 4.5 }]
await db.close();import io.github.edadma.petradb.client.*import scala.concurrent.ExecutionContext.Implicits.global
val session = new Session(SessionOptions( host = "localhost", port = 5480, username = Some("admin"), password = Some("secret"),))ステートレス使用
Section titled “ステートレス使用”for results <- session.execute("SELECT * FROM users")yield results.foreach(println)ステートフル使用
Section titled “ステートフル使用”for _ <- session.connect() _ <- session.execute("BEGIN") _ <- session.execute("INSERT INTO users (name) VALUES ('Alice')") _ <- session.execute("COMMIT") results <- session.execute("SELECT * FROM users") _ <- session.close()yield results.foreach(println)すべてのメソッドはFuture値を返します。connect()はセッションIDを返し、execute()はSeq[Result]を返し、close()はUnitを返します。