當前位置:首頁 » 數據倉庫 » ruby操作常用資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ruby操作常用資料庫

發布時間: 2022-05-24 12:14:12

『壹』 ruby連接sqlite,ruby中創建資料庫sample,往表格student中插數據,update方法,鍵盤輸入,修改對應值

每個方法都加參數 db
然後各個方法裡面對db進行連接,然後才是每個方法相應的操作

『貳』 如何使用Ruby on Rails連接Oracle資料庫

今天學習了一下最近流行的Ruby on Rails,感覺:就是一個代碼生成器
鏈接Oracle資料庫的時候,查了半天的資料。終於找到辦法了
http://blog.csdn.net/OwenLiu/article/details/576715

『叄』 學習Ruby需要什麼資料

Programming Ruby(2nd Edition)

這似乎已經不是怪事:關於一種編程語言的經典教材,作者不是這門語言的創造者。就像Stan Lippman之於C++、Joshua Bloch之於Java、Martin Fowler之於UML一樣,Dave Thomas也許是這個世界上最善於向別人講解Ruby語言的人——至少超過Matsumoto是毫無問題的。也許正是因為自己也經歷了「不懂到懂」的學習過程,有時候「旁觀者」反倒比「創造者」更清楚學習者們需要什麼。

所以這本書就是Ruby的經典教材。關於Ruby的基本語法和常用工具,書中第一部分和第二部分做了詳細的介紹。第三部分「Ruby Crystallized」更加闡述了Ruby語言的一些細節和設計理念,其中第23章「Duck Typing」是剛從Java或者.NET平台走出來的讀者不可錯過的,因為對於類型與契約的理解、對於類與類型的理解,正是Ruby這種動態語言與Java/C#等靜態語言最大的區別之一。隨後的第四部分提供了Ruby基礎類庫的速查手冊。

Dave Thomas和Andy Hunt這兩個「Pragmatic Programmer」並非浪得虛名:這本Programming Ruby雖然不是一本稱職的參考手冊,卻足夠幫助一個初學者步入Ruby世界而不致誤入歧途,並且能夠在很少見的一些情況下——譬如說忘了yield的用法——給有經驗的Ruby程序員提供幫助。在我看來,這也就足夠奠定它作為經典教材的地位了。由於封面上有一柄丁字鎬,這本書也被昵稱為「鎬頭書」——它正是你發掘「紅寶石」(Ruby)寶藏的必備工具。

Agile Web Development with Rails

Rails的作者David Heinemeier Hansson說過一句大實話:「我從來不會為了學語言而學語言。」大多數人在大多數時候學習一種新的語言不是為了比較語言的優劣,而是因為這個語言底下的某個工具能給他的工作帶來幫助。Ruby世界裡的這個「殺手應用」,讓Ruby在短短一年時間里成為焦點的這個工具,就是Rails。

這是第一本介紹Rails的圖書,又是由Rails的作者DHH和前面提到的Dave Thomas共同撰寫,其價值可謂不言而喻了。許是兩位作者有太多的「乾貨」想要交給讀者,這本書的第一版被他們——不幸地——寫到了558頁之厚。書中首先展示了一個規模不大的在線購物網站,讓讀者親身體驗用Rails進行敏捷開發的感受;然後針對Rails框架的各個組件和安全、部署等延伸話題展開了深入的討論。其內容之全面、探討之深入,令人嘆為觀止。看起來,和Matsumoto不同,DHH很清楚應該怎麼介紹自己的作品——不管是「淺出」還是「深入」。

值得中國讀者高興的是,這本書的第一版已經由林芷薰翻譯,電子工業出版社付梓。Rails仍然處在高速發展的階段,從本書第一版截稿至今,Rails已經發生了相當大的變化,因此這本中譯本甫一面世便已經有很多過時之處。但這本書畢竟不是參考手冊,作者更多地是在其中闡述Rails的設計理念和最佳實踐。對於英文閱讀無法達到最快速度的讀者來說,這個譯本未嘗不可以是一個稱職的向導。

Rails開發者助手兩種

不難想像,有很多性急的程序員會——就像我一樣——草草了解Ruby語法之後就一頭扎進Rails的絢麗宮殿,體驗快速開發web應用的成就感,卻不得不時時因為缺乏對Ruby語言的深入了解而感到迷惑:這個類里什麼都沒有,它為什麼會工作?那個地方寫的代碼是什麼意思?可是,要全面系統地學習Ruby,又實在令人望而生畏。還好,我們有這本Ruby for Rails。書中介紹了一些Ruby語言特性——既有普通的也有高級的,都是Rails中使用到的。簡而言之,這就是一本專門為Rails應用開發者提供的Ruby指南。更有趣的是,書中還用了一章(第17章)篇幅專門介紹「如何探索Rails源代碼」,真可謂是「授人以漁」的典範了。

另一個「助手」則是Chad Fowler——他也是Programming Ruby的合著者——的Rails Recipes。和任何一本「菜譜」(recipe)一樣,這本書不會教你如何使用菜刀與炒勺、如何把蔬菜切片——你可以從別的很多地方學到這些技巧。這本RailsRecipes教給讀者的,是如何在 Rails環境下急就章地完成一個你需要的功能。譬如說「用戶登錄與身份驗證」這件事,每個網站、每個開發者都曾經做過不止一次,這本書中就給了讀者一個簡單而可靠的解決方案,讀者只要抄抄改改,幾分鍾就可以完成這個功能。對於初接觸Rails(以及Web 2.0)、面對很多問題尚且無從下手的新兵來說,這本書確實可以幫助他們解決一些實際問題。

不過這本書的局限也同樣明顯:如果你需要的菜色超出了這份菜譜的范圍,它就只好愛莫能助了;而且,僅僅給出解決問題的代碼,卻沒有對應的單元測試,也讓習慣了TDD的讀者多少有些忐忑。在我看來,這本書對「授人以魚」的專注恰好和前一本Ruby for Rails構成了一對「可怕的對稱」,也讓這兩本書有理由共存於Rails開發者的案頭。

Ruby In A Nutshell

作為Ruby語言的締造者,Yukihiro Matsumoto只能寫一本「果殼書」,這本身就是一件耐人尋味的事情。O』Reilly的「果殼書」系列歷來褒貶不一:有人認為它們缺乏深度,也有人認為它們是快速入門的好幫手。但Matsumoto最大的問題在於:他創造了Ruby,卻沒有真正意識到這種語言到底有多大的威力——後來他經常在Ruby on Rails討論組活動,從中了解一些精妙的Ruby用法。其結果也很自然:這本Ruby In A Nutshell作為語言參考中規中矩,但對於實際應用中的妙處——例如在DSL方面的應用——卻語焉不詳。再加上它所針對的Ruby版本是略顯過時的1.6版,也讓這本書的地位略顯尷尬。

Ruby 奇書兩種

稱它們為「奇書」,因為它們的主題實在偏頗。先看這本Enterprise Integration with Ruby:雖說腳本語言常常被稱為「膠水」,有多少人會當真想到用Ruby去做企業應用集成?不過細看之下,這本書多少有些名不副實之嫌,因為它真正介紹的無非只是如何訪問資料庫、如何操作XML、如何通過SOCKET通信之類比較底層的技術而已。在一個生僻的題目之下寫著另一些生僻的內容,盡管這些內容算得上有趣,但我還是要對那些沒有讀過這本書的Ruby程序員說:你沒有錯過太多——盡管這本書與你想像的並不一樣。

最後要介紹的這本書更是備受爭議:有人盛贊它是「精通Ruby的必經之路」,也有人批評它沉溺於奇技淫巧缺乏實用價值。但無論褒貶,更多的讀者正在逐一挑戰其中的謎題——這本書就是James Edward Gray所著的Best of Ruby Quiz。這本書(目前出版的是第一卷)列舉了25道題目,讀者大多可以想出一種辦法來解決這些問題,往往還能 通過思考和重構找到第二種優雅的設計,但這本書卻給你列出了第三種、第四種真正精巧的解決方案——充分利用Ruby技巧才能得出的解決方案。這些題目的最終解法之巧妙,常常令人拍案叫絕(或是破口大罵)。不過這些「奇技淫巧」也並非全無用處,例如書中很多題目在解答時都用到了正則表達式,理解這些解答對於深入學習正則表達式的用法是很有幫助的

『肆』 安裝ruby環境,用mysql資料庫,總是報錯,調了一下午,網上方法都用了也不管事

make的時候需要調用ruby很多編譯前的參數.一些信息make不知道的話會不知道如何建庫.
我個人的建議是根據你安裝的ruby路徑和版本信息把配置選項補充全.下面是我電腦上面的配置,你可以借鑒一下.據我分析應該能解決你的問題.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/usr/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/ruby-2.1.2/rubies/ruby-2.1.2/bin/ruby

『伍』 如何用ruby操作sql資料庫

可以看一下這個網頁
http://www.cnblogs.com/wangyuyu/p/3242611.html
詳細講了
用ruby操作sql資料庫

『陸』 在RUBY中,使用哪個命令可以把表創建到資料庫里

如果猜得不錯的話,應該是問在rails項目有migration的情況下用哪個命令可以將migration寫的表創建到資料庫中. 命令是 rake db:migrate

『柒』 用ruby寫mysql,如果直接操作位元組流

直接寫入資料庫就好了,寫一個讀寫mysql的類文件介面,然後調用操作。具體如下,我調試過的。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
require 'mysql'
class MysqlDb
# attr_accessor :host, :user, :pass, :database
def open(host=nil, user=nil, pass=nil, database=nil,port=3306)
@host =host
@user = user
@pass = pass
@database = database
@port = port
begin
@connection = Mysql.new(@host, @user, @pass, @database, @port)
rescue
puts "connect faild! an error has occurred: #{$!}" # 錯誤信息保存在特殊變數$!中。
try_again
end
end

def try_again
puts '------------------try again, if not modify, leave a blank---------------'
print "host: "
host=STDIN.gets.strip
@host = check_value(host,@host)
puts "---------------current host: #{@host}"
print "user: "
user =STDIN.gets.strip
@user = check_value(user,@user)
puts "---------------current user: #{@user}"
print "password: "
pass =STDIN.gets.strip
@pass = check_value(pass,@pass)
puts "---------------current password: #{@pass}"
print "database: "
database =STDIN.gets.strip
@database = check_value(database,@database)
puts "---------------current database: #{@database}"
print "port: "
port =STDIN.gets.strip
@port = check_value(port,@port)
open(@host, @user, @pass, @database, @port)
puts "---------------current port: #{@port}"
end
def check_value(value,returnvalue)
if value == ""
nil
else
returnvalue = value
end
return returnvalue
end

def iquery(sql)
field = []
@connection.query(sql).each do |data|
field << data
end
field.to_a
end
def iexecute(sql)
@connection.query(sql)
end
def close
@connection.close
end

end

# useages
adb = MysqlDb.new
adb.open('127.0.0.1','root','zyq001122','hello_z','3307')
# result = db.query "insert into user value(7,\"lilY\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )" # 插入記錄
# result.each {|row| puts row}
num_of_records = adb.iquery ('select count(*) from user') #查詢
puts num_of_records
#sql = "insert into user value(10,\"Hello-Kitty\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )" # 數據操作
# sql = 'update user set name=\'jackjhons\' where uid=5 ' # 更新一條記錄
#adb.iexecute(sql)
# adb.close

『捌』 ruby 連接資料庫mysql 報錯~~~

require 'mysql'
class MysqlDb
# attr_accessor :host, :user, :pass, :database
def open(host=nil, user=nil, pass=nil, database=nil,port=3306)
@host =host
@user = user
@pass = pass
@database = database
@port = port
begin
@connection = Mysql.new(@host, @user, @pass, @database, @port)
rescue
puts "connect faild! an error has occurred: #{$!}" # 錯誤信息保存在特殊變數$!中。
try_again
end
end

def try_again
puts '------------------try again, if not modify, leave a blank---------------'
print "host: "
host=STDIN.gets.strip
@host = check_value(host,@host)
puts "---------------current host: #{@host}"
print "user: "
user =STDIN.gets.strip
@user = check_value(user,@user)
puts "---------------current user: #{@user}"
print "password: "
pass =STDIN.gets.strip
@pass = check_value(pass,@pass)
puts "---------------current password: #{@pass}"
print "database: "
database =STDIN.gets.strip
@database = check_value(database,@database)
puts "---------------current database: #{@database}"
print "port: "
port =STDIN.gets.strip
@port = check_value(port,@port)
open(@host, @user, @pass, @database, @port)
puts "---------------current port: #{@port}"
end
def check_value(value,returnvalue)
if value == ""
nil
else
returnvalue = value
end
return returnvalue
end

def iquery(sql)
field = []
@connection.query(sql).each do |data|
field << data
end
field.to_a
end
def iexecute(sql)
@connection.query(sql)
end
def close
@connection.close
end

end

# useages
adb = MysqlDb.new
adb.open('127.0.0.1','root','zyq001122','hello_z','3307')
# result = db.query "insert into user value(7,\"lilY\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )" # 插入記錄
# result.each {|row| puts row}
num_of_records = adb.iquery ('select count(*) from user') #查詢
puts num_of_records
#sql = "insert into user value(10,\"Hello-Kitty\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )" # 數據操作
# sql = 'update user set name=\'jackjhons\' where uid=5 ' # 更新一條記錄
#adb.iexecute(sql)
# adb.close

『玖』 關於Ruby

Ruby on Rails是一個用於編寫網路應用程序的框架,它基於計算機軟體語言Ruby,給程序開發人員提供強大的框架支持。Ruby on Rails包括兩部分內容:Ruby語言和Rails框架。

什麼是Ruby?
Ruby 語言是一種動態語言,它與Python、Smalltalk和Perl這3種編程語言有些類似。Ruby語言起源於日本,它的研發者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年開始著手Ruby語言的研發工作,他開發Ruby語言的初衷是為了提高編程的效率。 1995年12月Matz推出了Ruby的第一個版本Ruby 0.95。

Ruby語言的主要特點如下。
1.純的面向對象語言
在Ruby中,一切皆是對象。下面舉一個例子來更直觀地說明Ruby語言的這一特點。
在Java中,求一個數的絕對值的代碼如下。
int c = Math.abs(-20);
而在Ruby語言中,一切皆是對象,也就是說「-20」這個數也是一個對象,因此,求一個數絕對值的Ruby代碼形式如下。
c = -20.abs
這樣的代碼編寫方式是不是更形象一些呢?

2.解釋型腳本語言
Ruby 語言是解釋型腳本語言,它既有腳本語言強大的字元串處理能力和正則表達式,又不失解釋型語言的動態性。一方面,在最初設計Ruby語言時,Ruby的研發者松本行弘考慮到文字處理方面的需要,他借鑒了Perl語言在文字處理方面的成功經驗。另一方面,松本行弘將Ruby語言設定為一種解釋型語言,Ruby 的動態性使得由Ruby語言編寫的程序不需要事先編譯即可直接運行,這為程序的調試帶來了方便。同時,這一特點可以實現開發過程中的快速反饋。

3.其他特點
(1)動態載入。可以在運行時候重定義自己,類也可以在運行時繼承或取消繼承。
(2)自動內存管理機制。
(3)多精度整數。
(4)迭代器和閉包。
(5)開源項目。有大量活躍的社區支持Ruby語言。

什麼是Rails?
雖然Ruby語言有很多優點,但是一直以來,其流行的范圍也僅限於日本。直到2004年,Ruby才逐漸被世界上其他地區的人們所認識,那麼是什麼讓Ruby語言走向世界的呢?是Rails。
Rails 框架首次提出是在2004年7月,它的研發者是26歲的丹麥人David Heinemeier Hansson。不同於已有復雜的Web 開發框架, Rails是一個更符合實際需要而且更高效的Web開發框架。Rails結合了PHP體系的優點(快速開發)和Java體系的優點(程序規整),因此, Rails在其提出後不長的時間里就受到了業內廣泛的關注。

Rails框架主要有如下的6大特點。
1.全棧式的MVC框架
Rails是一個全棧式的MVC框架,換句話說,通過Rails可以實現MVC模式中的各個層次,並使它們無縫地協同運轉起來。
在實際開發一個MVC模式的Web應用項目時,如果使用Java開發,需要用到Struts(Model層)、Hibernate (Controller 層)和Spring(View層)3個框架,而且需要額外整合3個框架開發出的內容。而使用Ruby語言開發相同的項目時,只需要用到Rails框架就可以完成。

2.約定優於配置
為了說明各個對象之間的關聯關系,一般的Web應用開發框架往往採用寫入XML配置文件的方法。這種方式雖然可以解決一些問題,但是卻帶來了管理上的混亂。
Rails 對此的態度是約定優於配置,這意味著在Rails中不會出現XML配置文件。Rails使用Web應用多年來積累的各種常見約定(更具體地說是命名規則)來代替XML配置文件,而在Rails內部的映射與發現機制根據這些約定可以實現對象之間的關聯。在第1章中,通過Rails的映射與發現機制實現了數據表與Ruby對象之間的關聯。

3.更少的代碼
使用約定來代替XML配置文件說明Rails本身完成了大量的底層工作,這意味著使用更少的代碼來實現應用程序是極有可能的。此外,代碼量的縮減也減小了出現bug的可能性,降低了維護程序和升級程序的難度。

4.生成器
Rails 使用的實時映射技術和元編程技術,免去了開發人員在開發過程中編寫大量樣板文件代碼的煩惱。在少數需要使用樣板文件代碼的時候,開發人員可以通過 Rails內建的生成器腳本實時創建,而不再是通過手工編寫。Rails的這個特點可以使開發人員更專注於系統的邏輯結構,而不必為一些瑣碎的細節所煩擾。

5.零周轉時間
對已有的Web應用系統進行修改後,其一般需要經過配置、編譯、發布、重新設置、測試等一系列步驟才能投入使用,這明顯浪費了許多時間。而使用Rails開發Web應用系統,可以通過瀏覽器即時查看程序運行結果,從而節約了大量的時間。

6.支架系統
Rails的支架系統可以自動為任何相關的資料庫表創建一套包含標准CRUD操作和前台視圖的系統。通過支架系統,開發人員可以方便快捷地操縱資料庫中的數據表。此外,Rails也允許開發人員使用自己設計的代碼或視圖來替換自動生成的代碼和視圖。

目前,Rails的最新版本是2005年12月13日發布的v1.0.0。從RoR正式提出到v1.0.0的發布,RoR在一年多的時間里受到了業內人士的廣泛關注。RoR受到廣泛關注主要有如下兩個原因:首先,RoR的開發效率高(部署容易)、功能豐富(支持Ajax等流行應用),有消息稱對於相同的 Web開發項目,使用RoR開發比使用Java體系架構開發快5~10倍;此外,令人不可思議的高性能是其受到關注的另一個重要原因,根據CSDN上轉載的新聞稱使用RoR開發出來的項目性能,比基於Struts+Hibernate+Spring的Java應用還要高15%~20%。
RoR 當前遇到的主要問題是使用RoR搭建的大型商業應用還很少,究其原因可以概括為兩點:第一,從開發能力的角度,RoR是一個基於Ruby語言的輕型Web 開發框架,很多開發者對其是否適合大型應用難以把握。第二,本身使用RoR開發的大型商業應用較少,使得後來者持觀望態度。
綜合分析來看,RoR的發展前景還是很光明的。RoR在短時間內取得了巨大的成就,它打破了Web開發領域的固有觀念,方便快捷的開發方式使其被廣泛接受。而事實上,現在已有幾家跨國公司正在使用RoR開發自己的Web應用程序,並且有多家大型公司在考慮使用RoR進行Web應用開發。

『拾』 ruby(rails) 程序如何 連接 各種遠程資料庫

在使用Cookie.find等操作的時候,就會連接到database.yml中monitor_spider配置的資料庫上操作。以前一直都這么用,沒發現什麼不妥。最近一個項目,由於啟動的進程比較多,老是碰到資料庫連接池鏈接獲取超時的錯誤。

通過MySQL Client用命令:show processlist; 發現資料庫連接數量一直居高不下,輕輕鬆鬆就上2k+的連接。通過讀Rails框架的connection_pool.rb文件代碼,發現在各模型中用establish_connection連接資料庫會造成很大的問題。文件中類ConnectionHandler的establish_connection方法代碼如下:Ruby代碼 def establish_connection(name, spec) @connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec) end def establish_connection(name, spec)

@connection_pools[name] = ConnectionAdapters::ConnectionPool.new(spec)