Node.js操作Firebird數(shù)據(jù)庫(kù)教程
來(lái)源:易賢網(wǎng) 閱讀:794 次 日期:2016-08-02 15:27:54
溫馨提示:易賢網(wǎng)小編為您整理了“Node.js操作Firebird數(shù)據(jù)庫(kù)教程”,方便廣大網(wǎng)友查閱!

Firebird是一個(gè)跨平臺(tái)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),目前能夠運(yùn)行在Windows、linux和各種Unix操作系統(tǒng)上,提供了大部分SQL-99標(biāo)準(zhǔn)的功能。它既能作為多用戶環(huán)境下的數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行,也提供嵌入式數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。

Firebird脫胎于Borland公司的開源版數(shù)據(jù)庫(kù)Interbase6.0,是一個(gè)完全非商業(yè)化的產(chǎn)品,用C和C++開發(fā)。

一個(gè)firebird數(shù)據(jù)庫(kù)服務(wù)器能夠管理多個(gè)獨(dú)立的數(shù)據(jù)庫(kù),每一個(gè)數(shù)據(jù)庫(kù)同時(shí)可支持多個(gè)客戶端連結(jié)??傊核且粋€(gè)開源的,強(qiáng)大的,可以自由使用的數(shù)據(jù)庫(kù)(即使是商業(yè)上的使用)。

特點(diǎn)

Firebird是一個(gè)真正的關(guān)系數(shù)據(jù)庫(kù),支持存儲(chǔ)過(guò)程、視圖、觸發(fā)器、事務(wù)等大型關(guān)系數(shù)據(jù)庫(kù)的所有特性;

Firebird支持SQL92的絕大部分命令,并且支持大部分SQL99命令,新版Firebird 2.0對(duì)SQL99的支持更完整;

Firebird源碼基于成熟的商業(yè)數(shù)據(jù)庫(kù)Interbase,有良好的穩(wěn)定性,與Interbase有良好的兼容性; 

不用考慮授權(quán)費(fèi)用(免費(fèi)),不用擔(dān)心將來(lái)有一天你或你的客戶因?yàn)槭褂帽I版而被數(shù)據(jù)庫(kù)開發(fā)商告上法庭;

發(fā)布簡(jiǎn)易,安裝文件只有幾M,且高度可定制,客戶端的分發(fā)也很簡(jiǎn)單,只需一個(gè)DLL文件; 

Firebird的一嵌入式服務(wù)器版本,不用安裝,直接運(yùn)行,基于單機(jī)開發(fā)首選;

Firebird的運(yùn)行效率非常高;

具備高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系統(tǒng)下運(yùn)行,而且數(shù)據(jù)庫(kù)格式完全一樣,不用修改;

開發(fā)環(huán)境支持良好,Delphi,C++Builder不用通過(guò)ODBC連接,直接用原生開發(fā)接口開發(fā)基于Firebird的程序。

為什么使用FireBird?

對(duì)于小型企業(yè)用戶而言,現(xiàn)在的開放源碼數(shù)據(jù)庫(kù)有兩點(diǎn)不足:要么太大(如MySQL、PostgreSQL);要么太小,并且缺乏功能和文檔(如HypersonicSQL和McKoi)。在很多應(yīng)用環(huán)境中,用戶需要有一個(gè)大小適中且功能齊備的數(shù)據(jù)庫(kù)。

Firebird相對(duì)來(lái)說(shuō)比較小,其RPM版本只有2.6MB。這使其可以稱得上是理想的“嵌入式數(shù)據(jù)庫(kù)”,可用于與其它應(yīng)用程序服務(wù)器和應(yīng)用程序捆綁。Firebird具有大部分成熟數(shù)據(jù)庫(kù)所具有的功能,比如支持存儲(chǔ)過(guò)程、SQL兼容等。如果用戶有使用DB2或PostgreSQL的經(jīng)驗(yàn),就會(huì)發(fā)現(xiàn)Firebird與它們的語(yǔ)法非常相似,數(shù)據(jù)類型和數(shù)據(jù)處理方式也很類似。

安裝

前面講了那么多關(guān)于FireBird的內(nèi)容,現(xiàn)在開始來(lái)講解如何用Node來(lái)操作FireBird。

如果想通過(guò)Node來(lái)操作FireBird,首先要安裝操作FireBird的模塊——node-firebird。如下代碼:

npm install node-firebird

安裝完成以后,我們就可以在程序中使用node來(lái)操作FireBird了,如下代碼:

var FireBird = require('node-firebird');

Connection options

當(dāng)我們通過(guò)node來(lái)操作FireBird時(shí),首先要對(duì)數(shù)據(jù)庫(kù)連接進(jìn)行設(shè)置,包括連接的ip地址、端口號(hào)、數(shù)據(jù)庫(kù)名稱(可以是包括路徑的全名)、連接的用戶名、密碼。如下代碼:

var options = {};

options.host = '127.0.0.1';          // 設(shè)置主機(jī)地址

options.port = 3050;              // 端口號(hào)

options.database = '/home/user/test.fdb';   // 數(shù)據(jù)庫(kù)名稱

options.user = 'SYSDBA';            // 用戶名

options.password = 'masterkey';        // 密碼

這樣數(shù)據(jù)庫(kù)的連接就設(shè)置完成了。

escape

在node-firebird模塊中有一個(gè)名為escape的方法,它的返回值為String類型。使用該方法可以防止SQL注入,如下代碼:

FireBird.escape(value) -> return {String}

實(shí)例如下:

var FireBird = require('node-firebird');

var sql1 = 'SELECT * FROM a WHERE ID='+Firebird.escape(2) ;

console.log(sql1);

create

create方法用于建立數(shù)據(jù)庫(kù),其語(yǔ)法格式如下:

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

如下代碼:

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

  if(err)

    throw err;

  console.log('創(chuàng)建數(shù)據(jù)庫(kù)成功');

  db.detach(); //關(guān)閉數(shù)據(jù)庫(kù)連接

});

注意:當(dāng)數(shù)據(jù)庫(kù)存在時(shí)候,用該方法建立數(shù)據(jù)庫(kù)會(huì)將原數(shù)據(jù)庫(kù)覆蓋,從而導(dǎo)致數(shù)據(jù)丟失。

query

db.query方法的用法前面已經(jīng)介紹了一些,在這里將繼續(xù)給大家講db.query()的用法。當(dāng)query語(yǔ)句中是查詢語(yǔ)句時(shí),返回的結(jié)果為對(duì)象類型的數(shù)組(即result的值)。我們可以使用db.query()對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行添加,修改,刪除,更新操作。db.query()有兩種用法,一種是無(wú)參數(shù)的查詢,一種是有參數(shù)的查詢。

有參數(shù)的查詢:

db.query(query, [params], function(err, result))

實(shí)例代碼如下向表a中插入數(shù)據(jù):

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

  });

});

實(shí)例代碼更新a表中的數(shù)據(jù):

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

  });

});

以上就是本文的全部?jī)?nèi)容,教會(huì)大家如何使用Node.js操作Firebird數(shù)據(jù)庫(kù),希望大家喜歡。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:Node.js操作Firebird數(shù)據(jù)庫(kù)教程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)