如何与node.js一起使用sqlite3 – 什么是smt?
我想能够使用sqlite 3与node.js
我正在使用这里的代码,它完美的工作,但我真的不明白的代码。 例如:
var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { console.log(row.id + ": " + row.info); }); }); db.close();
- 首先,我不明白什么样的
stmt
或它与smt.finalize
做什么 -
(?)
在VALUES
之后做什么(?)
- 为什么要使用所有这些smt的东西,为什么不只是这样做:(它的工作原理我testing了它。)
db.run("CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT)"); db.run("INSERT INTO user VALUES (1,\"manu\")");
db.run("CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT)"); db.run("INSERT INTO user VALUES (1,\"manu\")");
我希望我所有的问题都可以通过一个很好的文档链接来回答。
谢谢!
我想你是新来的sqlite3
和nodejs
。 variablesstmt
只是一个variables,您可以将其更改为更像描述性的statement
或query
。
(?)
string更可能是variablesi
的占位符。 所以你不会执行stmt.run()
十次。 基本上它用stmt.run()
的内容replace(?)
,所以它会像stmt.run('INSERT INTO lorem VALUES (Ipsum 1)')
,依此类推。
使用stmt.run('SQL QUERY HERE')
很容易进行一个或几个操作。 但是,如果你需要迭代它,10000 stmt.run()
似乎并不容易。
文档: https : //github.com/mapbox/node-sqlite3/wiki/API 。