node.js中使用sqlite3

来源:互联网 发布:谢道清 知乎 编辑:程序博客网 时间:2024/05/17 06:14

一、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.jsvar 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,这样写起代码来才爽!

0 0
原创粉丝点击