Node.js操作Firebird数据库教程


Posted in Javascript onMarch 04, 2016

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

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

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

Node.js操作Firebird数据库教程

特点

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();
  });
});

以上就是本文的全部内容,教会大家如何使用Node.js操作Firebird数据库,希望大家喜欢。

Javascript 相关文章推荐
jQuery 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
Jul 22 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
jquery插件之定时查询待处理任务数量
May 01 Javascript
js实现带圆角的多级下拉菜单效果
Aug 28 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 #Javascript
node.js微信公众平台开发教程
Mar 04 #Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
Mar 04 #Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 #Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 #Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 #Javascript
jquery实现右侧栏菜单选择操作
Mar 04 #Javascript
You might like
YB217、YB235、YB400浅听
2021/03/02 无线电
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
用python对oracle进行简单性能测试
2020/12/05 Python
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
市场开发与营销专业求职信
2013/12/31 职场文书
八项规定整改方案
2014/02/21 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python