@ladc/sql-bricks-modifier
v0.22.7
Published
Use the query builder 'SQL Bricks' with the LADC API.
Downloads
19
Readme
@ladc/sql-bricks-modifier
LADC is a common API on top of relational database (SQL) connectors. It can connect to Postgresql, MariaDB / MySQL, SQLite. The API is inspired from PDO and JDBC. It’s named LADC for “a Layer Above Database Connectors”.
This package is a plugin for LADC. It integrates the query builder SQL Bricks to LADC.
Additional API
This package overloads the following methods of the LADC objects MainConnection
and TransactionConnection
:
prepare(sqlBricksQuery)
exec(sqlBricksQuery)
all(sqlBricksSelectStatement)
singleRow(sqlBricksSelectStatement)
singleValue(sqlBricksSelectStatement)
cursor(sqlBricksSelectStatement)
How to use SQL Bricks with LADC (example with SQLite)
Install with LADC and a connector (here is an example with SQLite):
npm install ladc @ladc/sqlite3-adapter sql-bricks @ladc/sql-bricks-modifier
Here is how to create a connection:
import ladc from "ladc";
import sqlite3Adapter from "@ladc/sqlite3-adapter";
import sqlBricksModifier from "@ladc/sql-bricks-modifier";
const cn = ladc({
adapter: sqlite3Adapter({ fileName: `${__dirname}/mydb.sqlite` }),
modifier: sqlBricksModifier(),
});
Then, use it:
import { select } from "sql-bricks";
async function test(cn) {
const q = select("col1, col2").from("table1");
const rows = await cn.all(q);
console.log(rows);
}
How to use SQL Bricks with LADC: The case of MySQL
MySQL requires a specific placeholder
option for SQL Bricks:
import ladc from "ladc";
import mysql2Adapter from "@ladc/mysql2-adapter";
import sqlBricksModifier from "@ladc/sql-bricks-modifier";
const cn = ladc({
adapter: mysql2Adapter({
mysql2Config: {
host: "-my-server-",
database: "-my-database-",
user: "-my-user-",
password: "-my-password-",
},
}),
modifier: sqlBricksModifier({
toParamsOptions: { placeholder: "?" }, // ← Specific to MySQL
}),
});
Now, the API can be used as usual.
Contribute
With VS Code, our recommanded plugin is:
- TSLint from Microsoft (
ms-vscode.vscode-typescript-tslint-plugin
)