@bpframework/middleware-db
v0.0.4
Published
db middleware of bpframework
Downloads
2
Maintainers
Readme
database middleware in bpframework.
Middleware specification
https://github.com/bpcloud/middleware
Setup.
import { Application } from 'bpframework';
import * as middleware_db from '@bpframework/middleware-db';
Application.use(middleware_db.middleware)
Application.runKoa(...);
Config.
spring.db:
# db type: mysql, mssql
type: mysql
# (optional) timeout of connect to database.
connectTimeout: 5000
# (optional) timeout of query.
queryTimeout: 5000
# (optional) timeout of acquire connection from pool.
acquireTimeout: 5000
# (optional) max queue length of wait for acquire connection.
queueLimit: 200
# (optional) max count of connection in pool.
connectionLimit: 10
# (optional) idle timeout to recreate connect
idleTimeoutMillis: 600000
# database host.
host: 127.0.0.1
# (optional) databse port.
port: 3306
# database name.
database: dbname
# user name of databse.
user: username
# the password of user.
password: password
# (optional) table prefix name.
table_prefix: prefix_
Define table.
/**
* table model
*/
@Table('tablename')
class Table1Model {
@Column({ type: dataType.Char(32), primaryKey: true })
id: string;
@Column({ type: dataType.VarChar(64) })
col1: string;
@Column({ type: dataType.Bit() })
col2: boolean;
}
/**
* table mapper
*/
class Table1Mapper extends BaseMapper<Table1Model> implements IBaseMapper {
/** Must have this static member */
static Model = Table1Model;
}
Define Bean.
@Service()
class DBConfigure {
@Bean()
dbTemplate(): DBTemplate {
return new DBTemplate();
}
}
Use.
@Service()
class DBService {
@Autowired("dbTemplate")
dbTemplate: DBTemplate;
async foo(): Promise<void> {
// get mapper.
let mapper: Table1Mapper = this.dbTemplate.getMapper(Table1Mapper);
// query.
let count = await mapper.count('1=1');
console.log(`count: ${count}`);
let exist = await mapper.exist('617a46bf66555e3ea251000001a5da4f');
console.log(`exist: ${exist}`);
let select = await mapper.select(
mapper.condition.equal('id', '617a46bf66555e3ea251000001a5da4f')
);
console.log(`select: ${JSON.stringify(select[0])}`);
let selectById = await mapper.selectById(
'617a46bf66555e3ea251000001a5da4f'
);
console.log(`selectById: ${JSON.stringify(selectById)}`);
// exec.
await this.dbTemplate.exec('select * from tablename');
}
}