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/在線試一試。