Firebird是一个跨平台的关系数据库系统,目前可以运行在Windows、linux和各类Unix操做系统上,提供了大部分SQL-99标准的功能。它既能做为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。node
Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个彻底非商业化的产品,用C和C++开发。linux
一个firebird数据库服务器可以管理多个独立的数据库,每个数据库同时可支持多个客户端连结。总之:它是一个开源的,强大的,能够自由使用的数据库(即便是商业上的使用)。sql
Firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的全部特性;数据库
Firebird支持SQL92的绝大部分命令,而且支持大部分SQL99命令,新版Firebird 2.0对SQL99的支持更完整;npm
Firebird源码基于成熟的商业数据库Interbase,有良好的稳定性,与Interbase有良好的兼容性; 不用考虑受权费用(免费),不用担忧未来有一天你或你的客户由于使用盗版而被数据库开发商告上法庭;数组
发布简易,安装文件只有几M,且高度可定制,客户端的分发也很简单,只需一个DLL文件; Firebird的一嵌入式服务器版本,不用安装,直接运行,基于单机开发首选;服务器
Firebird的运行效率很是高;ui
具有高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系统下运行,并且数据库格式彻底同样,不用修改;操作系统
开发环境支持良好,Delphi,C++Builder不用经过ODBC链接,直接用原生开发接口开发基于Firebird的程序。code
对于小型企业用户而言,如今的开放源码数据库有两点不足:要么太大(如MySQL、PostgreSQL);要么过小,而且缺少功能和文档(如HypersonicSQL和McKoi)。在不少应用环境中,用户须要有一个大小适中且功能齐备的数据库。
Firebird相对来讲比较小,其RPM版本只有2.6MB。这使其能够称得上是理想的“嵌入式数据库”,可用于与其它应用程序服务器和应用程序捆绑。Firebird具备大部分红熟数据库所具备的功能,好比支持存储过程、SQL兼容等。若是用户有使用DB2或PostgreSQL的经验,就会发现Firebird与它们的语法很是类似,数据类型和数据处理方式也很相似。
前面讲了那么多关于FireBird的内容,如今开始来说解如何用Node来操做FireBird。
若是想经过Node来操做FireBird,首先要安装操做FireBird的模块——node-firebird。以下代码:
npm install node-firebird
安装完成之后,咱们就能够在程序中使用node来操做FireBird了,以下代码:
var FireBird = require('node-firebird');
当咱们经过node来操做FireBird时,首先要对数据库链接进行设置,包括链接的ip地址、端口号、数据库名称(能够是包括路径的全名)、链接的用户名、密码。以下代码:
var options = {}; options.host = '127.0.0.1'; // 设置主机地址 options.port = 3050; // 端口号 options.database = '/home/user/test.fdb'; // 数据库名称 options.user = 'SYSDBA'; // 用户名 options.password = 'masterkey'; // 密码
这样数据库的链接就设置完成了。
在node-firebird模块中有一个名为escape的方法,它的返回值为String类型。使用该方法能够防止SQL注入,以下代码:
FireBird.escape(value) -> return {String}
实例以下:
var FireBird = require('node-firebird'); var sql1 = 'SELECT * FROM a WHERE ID='+Firebird.escape(2) ; console.log(sql1);
create方法用于创建数据库,其语法格式以下:
FireBird.create(options, function(err, db));
以下代码:
FireBird.create(options,function(err,db){ if(err) throw err; console.log('建立数据库成功'); db.detach(); //关闭数据库链接 });
注意:当数据库存在时候,用该方法创建数据库会将原数据库覆盖,从而致使数据丢失。
db.query方法的用法前面已经介绍了一些,在这里将继续给你们讲db.query()的用法。当query语句中是查询语句时,返回的结果为对象类型的数组(即result的值)。咱们可使用db.query()对数据库中的表进行添加,修改,删除,更新操做。db.query()有两种用法,一种是无参数的查询,一种是有参数的查询。
有参数的查询:
db.query(query, [params], function(err, result))
实例代码以下向表a中插入数据:
FireBird.attach(options, function(err, db) { if (err) throw err; // db = DATABASE db.query('insert into a (id,name) values(?,?)',[1,'Tom'], function(err, result) { if (err) throw err; console.log("insert success!"); db.detach(); }); });
实例代码更新a表中的数据:
FireBird.attach(options, function(err, db) { if (err) throw err; // db = DATABASE db.query("update a set name='Ann' where id=1", function(err, result) { if (err) throw err; console.log("update success!"); db.detach(); }); });
有兴趣的能够到http://www.hubwiz.com/course/568a12077ab6169165ef35da/在线试一试。