Aller au contenu

Client

La bibliothèque client se connecte à un serveur PetraDB en cours d’exécution via HTTP.

Fenêtre de terminal
npm install @petradb/client
libraryDependencies += "io.github.edadma" %%% "petradb-client" % "1.5.0"
OptionPar défautDescription
host"localhost"Nom d’hôte du serveur
port5480Port du serveur
usernameNom d’utilisateur pour l’authentification Basic
passwordMot de passe pour l’authentification Basic
import { Session } from '@petradb/client';
const db = new Session({
host: 'localhost',
port: 5480,
username: 'admin',
password: 'secret',
});

Sans appeler connect(), chaque appel execute() s’exécute dans une session transitoire unique sur le serveur. C’est le mode le plus simple — pas de session à gérer.

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

Appelez connect() pour créer une session côté serveur. L’identifiant de session est envoyé automatiquement avec chaque appel execute() subséquent, de sorte que les transactions et l’état temporaire persistent entre les requêtes.

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)

Toutes les méthodes retournent des valeurs Future. connect() retourne l’identifiant de session, execute() retourne Seq[Result], et close() retourne Unit.