@alt-javascript/jsdbc-template
v3.0.7
Published
Spring JdbcTemplate for JSDBC — queryForObject, queryForList, update, batchUpdate, transactions
Maintainers
Readme
@alt-javascript/jsdbc-template
CDI-managed database access for the @alt-javascript framework. Wraps @alt-javascript/jsdbc-core with Spring-style template patterns and auto-configuration.
Part of the @alt-javascript monorepo.
Install
npm install @alt-javascript/jsdbc-template @alt-javascript/jsdbc-core @alt-javascript/jsdbc-sqliteWhat's Included
| Class | Role |
|---|---|
| JsdbcTemplate | Simplifies JSDBC access — query(), update(), execute(), row mapping |
| NamedParameterJsdbcTemplate | Named :param parameters instead of positional ? |
| TransactionTemplate | Callback-based transaction management |
| ConfiguredDataSource | CDI-aware DataSource that reads jsdbc.* config |
| jsdbcAutoConfiguration() | Auto-configures DataSource + templates from config |
Usage
Standalone
import { JsdbcTemplate } from '@alt-javascript/jsdbc-template';
import { DataSource } from '@alt-javascript/jsdbc-core';
import '@alt-javascript/jsdbc-sqlite';
const ds = new DataSource({ url: 'jsdbc:sqlite::memory:' });
const template = new JsdbcTemplate(ds);
await template.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
await template.update('INSERT INTO users (name) VALUES (?)', ['Craig']);
const users = await template.query('SELECT * FROM users');With CDI Auto-Configuration
import { jsdbcAutoConfiguration } from '@alt-javascript/jsdbc-template';
const context = new Context([
...jsdbcAutoConfiguration(),
new Singleton(UserRepository),
]);Config (application.json):
{ "jsdbc": { "url": "jsdbc:sqlite:./app.db" } }Your UserRepository receives a jsdbcTemplate or namedParameterJsdbcTemplate via autowiring.
License
MIT
