node.js中使用sqlite3
一、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,这样写起代码来才爽!
- 上一篇: JavaScript十六进制字符串和字节数组相互转换
- 下一篇: 折半查找有序数组中的某个元素