我希望在h2中创建node.js数据库,并创建一个表来选择/插入数据。(请参阅代码)没有创建表IDS_TABLE,因此我得到了以下错误:表"IDS_TABLE“未找到(此数据库为空);”当我试图执行查询时。
知道我做错什么了吗?
var JDBC = require('jdbc');
var jinst = require('jdbc/lib/jinst');
var config = {
url: 'jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1;TRACE_LEVEL_SYSTEM_OUT=3;ACCESS_MODE_DATA=rw;DATABASE_TO_UPPER=false',
drivername: 'org.h2.Driver',
minpoolsize: 10,
maxpoolsize: 100,
};
if (!jinst.isJvmCreated()) {
jinst.addOption("-Xrs");
jinst.setupClasspath(['./lib/h2-2.1.214.jar']);
}
var h2 = new JDBC(config)
h2.initialize((err) => {
if (err) {
console.log('initialize.error:', err)
}
});
console.log('h2:', h2)
function queryDB(sql, callback) {
h2.reserve((err, connobj) => {
if (connobj && connobj.conn) {
connobj.conn.createStatement((err, statement) => {
if (callback) {
statement.executeQuery(sql, (err, result) => h2.release(connobj, (err) => callback(result)));
} else {
statement.executeUpdate(sql, (err) => h2.release(connobj, (err) => { if (err) console.log(err) }));
}
});
} else {
console.log('error excuting query')
}
});
};
function init(callback) {
queryDB("CREATE TABLE IDS_TABLE (ID_COL int)");
}
function addSome(callback) {
queryDB("insert into IDS_TABLE(ID_COL) values(1), values(2), values(3), values(4), values(5)");
}
function getAll(callback) {
queryDB("SELECT ID_COL FROM IDS_TABLE", (result) => {
console.log('result: ', result);
});
}
function test() {
init();
addSome();
getAll();
}
test()发布于 2022-07-27 07:38:10
您正在按顺序调用init、addSome和getAll。而不是等待“init”完成。使用回调代替。
https://stackoverflow.com/questions/73079336
复制相似问题