一、sqlite简介
sqlite是一款轻量级的数据库,sqlite的第一个版本是2000年就发布了的,经过十多年的历练,显然sqlite目前已经相当成熟。sqlite最大的特点就是没有任何数据库服务器,无论是C、java、node.js,只需要相应的驱动,就可以直接对数据库进行读写,速度是相当的快。相比之下,其他的sql数据库必须启动一个服务,而且还要安装、配置,sqlite简洁的令人感动。
由于没有了服务器,sqlite的sql执行速度相当快。sqlite的主要应用是嵌入式领域、移动互联网、火狐浏览器等,由于对并发连接支持非常不好,因此在信息管理系统中用的不多。但本人由于各种原因在做一个管理系统的项目中使用了sqlite,跑在大约1000用户的环境下,数据量达到了5000万的级别,居然没有出现任何问题。看来sql不可貌相,蚂蚁有时候也能干大象干的事。
二、node.js安装sqlite3模块
和其他语言一样,node.js仍然只需要一个module就可以对sqlite进行操作了。
npm find sqlite
发现sqlite的模块居然有几十个,足见node.js目前的火爆程度,小小的sqlite就有这么多可用模块。
其中一个就叫做sqlite3,解释如下:
sqlite3 Asynchronous, non-blocking SQLite3 bindings 异步,非阻塞sqlite3绑定。
node.js最大的特点就是异步,这款sqlite的驱动太符合node的核心思想了,经过与其他模块的比较,最终还是选择了这款。
npm install sqlite3
就将sqlite的驱动安装进来了。
三、调用sqlite3的接口
//file:test.js
var sqlite3 = require('sqlite3');
var db = new sqlite3.Database('/tmp/1.db',function() {
db.run("create table test(name varchar(15))",function(){
db.run("insert into test values('hello,world')",function(){
db.all("select * from test",function(err,res){
if(!err)
console.log(JSON.stringify(res));
else
console.log(err);
});
})
});
});
执行:
node test.js
[{"name":"hello,world"}]
怎么样,还是很简单的吧,插入的时候使用db.run(),查询的时候使用db.all()
由于是异步,必须在执行sql后注册回调函数,这样如果连续执行几十条sql,那代码就跟楼梯差不多了。但这就是node的特点,所以还是要慢慢适应。
node中操作sql确实不如在java中方便,但也可以像java一样使用ORM来实现对象-数据库的映射。但最好还是用和node绝配的mongodb,这样写起代码来才爽!