OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

使用Node.js操作跨平台数据库Firebird


分享到
分类 大话编程   关键字 Node.JS   发布 xiaozhi  1452648126089
注意 转载须保留原文链接,译文链接,作者译者等信息。  

FireBird

Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。

Firebird脱胎于Borland公司的开源版数据库Interbase6.0,是一个完全非商业化的产品,用C和C++开发。

一个firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连结。总之:它是一个开源的,强大的,可以自由使用的数据库(即使是商业上的使用)。

1

特点

Firebird是一个真正的关系数据库,支持存储过程、视图、触发器、事务等大型关系数据库的所有特性;

Firebird支持SQL92的绝大部分命令,并且支持大部分SQL99命令,新版Firebird 2.0对SQL99的支持更完整;

Firebird源码基于成熟的商业数据库Interbase,有良好的稳定性,与Interbase有良好的兼容性;
不用考虑授权费用(免费),不用担心将来有一天你或你的客户因为使用盗版而被数据库开发商告上法庭;

发布简易,安装文件只有几M,且高度可定制,客户端的分发也很简单,只需一个DLL文件;
Firebird的一嵌入式服务器版本,不用安装,直接运行,基于单机开发首选;

Firebird的运行效率非常高;

具备高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系统下运行,而且数据库格式完全一样,不用修改;

开发环境支持良好,Delphi,C++Builder不用通过ODBC连接,直接用原生开发接口开发基于Firebird的程序。

为什么使用FireBird?

对于小型企业用户而言,现在的开放源码数据库有两点不足:要么太大(如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');

Connection options

当我们通过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';                // 密码

这样数据库的连接就设置完成了。

escape

在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

create方法用于建立数据库,其语法格式如下:

FireBird.create(options, function(err, db));

如下代码:

FireBird.create(options,function(err,db){
    if(err)
        throw  err;
    console.log('创建数据库成功');
    db.detach(); //关闭数据库连接
});

注意:当数据库存在时候,用该方法建立数据库会将原数据库覆盖,从而导致数据丢失。

query

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/在线试一试。

社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 我被问得最多的十个JavaScript前端面试问题
  2. 传统JavaScript与Asm.JS的象棋大战
  3. 八张图告诉你什么是大数据
  4. 10个免费的HTML在线编辑工具
  5. 轻量级的可调视图和面板分栏Layout布局工具[开源]
  6. 什么是Spark,如何使用Spark进行数据分析
  7. 天猫双11前端分享系列(四):大规模 Node.js 应用
  8. 快速激发灵感的7个安卓应用模板
  9. AirJD-简单好用的免费建站工具

 相关阅读 - 大话编程
  1. 什么是Spark,如何使用Spark进行数据分析
  2. 八张图告诉你什么是大数据
  3. 10个免费的HTML在线编辑工具
  4. 传统JavaScript与Asm.JS的象棋大战
  5. 推荐几个非常实用的JQuery代码片段
  6. 为什么你应该选择Python编程
  7. 探讨Uber如何利用大数据取得巨大商业成就
  8. 创建自定义的jQuery补间动画运动函数及其实现的数学原理
  9. AngularJS的启动引导过程
  10. 史上最全的基于HTML5开源JavaScript游戏引擎列表

 关键字 - Node.JS
  1. Node.js框架之express
  2. 在nodejs中使用Redis缓存和查询数据及Session持久化(Express)
  3. Node.JS编码规范指南教程:教你优雅地写JavaScript代码
  4. Express入门教程:一个简单的博客
  5. NodeJS动态传参特性:不定个数参数的省略,默认值与解构
  6. Debug调试Node.JS:我们是如何定位内存泄漏和无限循环的
  7. 6款基于Node.JS的开源内容管理和静态网站生成系统
  8. Node.JS中如何判断递归嵌套的所有回调函数已经执行完毕,以读取目录下所有文件为例:计数比Promise方式快将近一倍
  9. Node.js网页抓取:一个最简单的http请求客户端示例(request client)
  10. 为什么你应该抛弃Express的视图渲染引擎

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号