コンテンツにスキップ

クライアント

クライアントライブラリは、実行中のPetraDBサーバーにHTTP経由で接続します。

Terminal window
npm install @petradb/client
libraryDependencies += "io.github.edadma" %%% "petradb-client" % "1.5.0"
オプションデフォルト説明
host"localhost"サーバーのホスト名
port5480サーバーのポート
usernameBasic認証のユーザー名
passwordBasic認証のパスワード
import { Session } from '@petradb/client';
const db = new Session({
host: 'localhost',
port: 5480,
username: 'admin',
password: 'secret',
});

connect()を呼び出さない場合、各execute()呼び出しはサーバー上の一時的なワンオフセッションで実行されます。これは最もシンプルなモードで、セッション管理が不要です。

const [{ rows }] = await db.execute('SELECT * FROM users');
console.log(rows);

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"),
))
for results <- session.execute("SELECT * FROM users")
yield results.foreach(println)
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を返します。