Node.js操作Firebird數(shù)據(jù)庫教程
Firebird是一個(gè)跨平臺(tái)的關(guān)系數(shù)據(jù)庫系統(tǒng),目前能夠運(yùn)行在Windows、linux和各種Unix操作系統(tǒng)上,提供了大部分SQL-99標(biāo)準(zhǔn)的功能。它既能作為多用戶環(huán)境下的數(shù)據(jù)庫服務(wù)器運(yùn)行,也提供嵌入式數(shù)據(jù)庫的實(shí)現(xiàn)。
Firebird脫胎于Borland公司的開源版數(shù)據(jù)庫Interbase6.0,是一個(gè)完全非商業(yè)化的產(chǎn)品,用C和C++開發(fā)。
一個(gè)firebird數(shù)據(jù)庫服務(wù)器能夠管理多個(gè)獨(dú)立的數(shù)據(jù)庫,每一個(gè)數(shù)據(jù)庫同時(shí)可支持多個(gè)客戶端連結(jié)??傊核且粋€(gè)開源的,強(qiáng)大的,可以自由使用的數(shù)據(jù)庫(即使是商業(yè)上的使用)。
特點(diǎn)
Firebird是一個(gè)真正的關(guān)系數(shù)據(jù)庫,支持存儲(chǔ)過程、視圖、觸發(fā)器、事務(wù)等大型關(guān)系數(shù)據(jù)庫的所有特性;
Firebird支持SQL92的絕大部分命令,并且支持大部分SQL99命令,新版Firebird 2.0對SQL99的支持更完整;
Firebird源碼基于成熟的商業(yè)數(shù)據(jù)庫Interbase,有良好的穩(wěn)定性,與Interbase有良好的兼容性;
不用考慮授權(quán)費(fèi)用(免費(fèi)),不用擔(dān)心將來有一天你或你的客戶因?yàn)槭褂帽I版而被數(shù)據(jù)庫開發(fā)商告上法庭;
發(fā)布簡易,安裝文件只有幾M,且高度可定制,客戶端的分發(fā)也很簡單,只需一個(gè)DLL文件;
Firebird的一嵌入式服務(wù)器版本,不用安裝,直接運(yùn)行,基于單機(jī)開發(fā)首選;
Firebird的運(yùn)行效率非常高;
具備高度可移植性,可在Linux,Unix,MacOS,Windows,Solaris系統(tǒng)下運(yùn)行,而且數(shù)據(jù)庫格式完全一樣,不用修改;
開發(fā)環(huán)境支持良好,Delphi,C++Builder不用通過ODBC連接,直接用原生開發(fā)接口開發(fā)基于Firebird的程序。
為什么使用FireBird?
對于小型企業(yè)用戶而言,現(xiàn)在的開放源碼數(shù)據(jù)庫有兩點(diǎn)不足:要么太大(如MySQL、PostgreSQL);要么太小,并且缺乏功能和文檔(如HypersonicSQL和McKoi)。在很多應(yīng)用環(huán)境中,用戶需要有一個(gè)大小適中且功能齊備的數(shù)據(jù)庫。
Firebird相對來說比較小,其RPM版本只有2.6MB。這使其可以稱得上是理想的“嵌入式數(shù)據(jù)庫”,可用于與其它應(yīng)用程序服務(wù)器和應(yīng)用程序捆綁。Firebird具有大部分成熟數(shù)據(jù)庫所具有的功能,比如支持存儲(chǔ)過程、SQL兼容等。如果用戶有使用DB2或PostgreSQL的經(jīng)驗(yàn),就會(huì)發(fā)現(xiàn)Firebird與它們的語法非常相似,數(shù)據(jù)類型和數(shù)據(jù)處理方式也很類似。
安裝
前面講了那么多關(guān)于FireBird的內(nèi)容,現(xiàn)在開始來講解如何用Node來操作FireBird。
如果想通過Node來操作FireBird,首先要安裝操作FireBird的模塊——node-firebird。如下代碼:
npm install node-firebird
安裝完成以后,我們就可以在程序中使用node來操作FireBird了,如下代碼:
var FireBird = require('node-firebird');
Connection options
當(dāng)我們通過node來操作FireBird時(shí),首先要對數(shù)據(jù)庫連接進(jìn)行設(shè)置,包括連接的ip地址、端口號(hào)、數(shù)據(jù)庫名稱(可以是包括路徑的全名)、連接的用戶名、密碼。如下代碼:
var options = {}; options.host = '127.0.0.1'; // 設(shè)置主機(jī)地址 options.port = 3050; // 端口號(hào) options.database = '/home/user/test.fdb'; // 數(shù)據(jù)庫名稱 options.user = 'SYSDBA'; // 用戶名 options.password = 'masterkey'; // 密碼
這樣數(shù)據(jù)庫的連接就設(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ù)庫,其語法格式如下:
FireBird.create(options, function(err, db));
如下代碼:
FireBird.create(options,function(err,db){ if(err) throw err; console.log('創(chuàng)建數(shù)據(jù)庫成功'); db.detach(); //關(guān)閉數(shù)據(jù)庫連接 });
注意:當(dāng)數(shù)據(jù)庫存在時(shí)候,用該方法建立數(shù)據(jù)庫會(huì)將原數(shù)據(jù)庫覆蓋,從而導(dǎo)致數(shù)據(jù)丟失。
query
db.query方法的用法前面已經(jīng)介紹了一些,在這里將繼續(xù)給大家講db.query()的用法。當(dāng)query語句中是查詢語句時(shí),返回的結(jié)果為對象類型的數(shù)組(即result的值)。我們可以使用db.query()對數(shù)據(jù)庫中的表進(jìn)行添加,修改,刪除,更新操作。db.query()有兩種用法,一種是無參數(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(); }); });
以上就是本文的全部內(nèi)容,教會(huì)大家如何使用Node.js操作Firebird數(shù)據(jù)庫,希望大家喜歡。
- node.js 開發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫操作
- node.js操作mongoDB數(shù)據(jù)庫示例分享
- 在Node.js應(yīng)用中讀寫Redis數(shù)據(jù)庫的簡單方法
- 了不起的node.js讀書筆記之mongodb數(shù)據(jù)庫交互
- Node.js操作mysql數(shù)據(jù)庫增刪改查
- Node.js開發(fā)之訪問Redis數(shù)據(jù)庫教程
- node.js從數(shù)據(jù)庫獲取數(shù)據(jù)
- node.js連接mongoDB數(shù)據(jù)庫 快速搭建自己的web服務(wù)
- Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫的方法
- Node.js連接postgreSQL并進(jìn)行數(shù)據(jù)操作
相關(guān)文章
Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)
在之前做過一個(gè)小項(xiàng)目,涉及到了文件上傳,在大文件上面使用了斷點(diǎn)續(xù)傳,降低了服務(wù)器方面的壓力,現(xiàn)在小編把Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)分享給大家,感興趣的朋友一起看看吧2022-01-01nodejs獲取本機(jī)內(nèi)網(wǎng)和外網(wǎng)ip地址的實(shí)現(xiàn)代碼
這篇文章主要介紹了nodejs獲取本機(jī)內(nèi)網(wǎng)和外網(wǎng)ip地址的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-06-06node.js中的fs.writeFileSync方法使用說明
這篇文章主要介紹了node.js中的fs.writeFileSync方法使用說明,本文介紹了fs.writeFileSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12nodejs 圖解express+supervisor+ejs的用法(推薦)
下面小編就為大家?guī)硪黄猲odejs 圖解express+supervisor+ejs的用法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09