程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Ruby on rails開發從頭來(四十三)- ActiveRecord基礎(連接數據庫)

Ruby on rails開發從頭來(四十三)- ActiveRecord基礎(連接數據庫)

編輯:關於JAVA

Active Record抽象了數據庫連接的概念,幫助應用程序來處理底層的數據庫鏈接的細節,作為替代,Active Record使用通用的調用,將細節委托給一組數據庫適配器。

可以使用establish_connection( )方法來制定連接,下面的例子創建了一個mysql數據庫連接,數據庫的名字是railsdb,服務器的Host名為dbserver.com,用戶名為railsuser,密碼為railspw。

ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "dbserver.com",
:database => "railsdb",
:username => "railsuser",
:password => "railspw"
)

Active Record支持DB2,MySql,Oracle,Postgres,SqlServer,以及SqlLite,每一種數據庫適配器在鏈接的參數上都有一些細小的差別,下表列出了常用的參數:

注意Oracle適配器的名字為oci。

數據庫連接和Model類是關聯的,每個類都從父類那裡繼承了鏈接,ActiveRecord::Base作為所有的Active Record類的父類,設置這裡的數據庫連接就給所有的活動記錄類設置了鏈接,當然,如果需要的話,你也可以復寫(override)鏈接配置。

下面的例子裡,我們的大多數表都在MySql數據庫中,庫名為online,由於一些歷史原因,customers表在名為backend的數據庫中,

ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "dbserver.com",
:database => "online",
:username => "groucho",
:password => "swordfish")
class LineItem < ActiveRecord::Base
# ...
end
class Order < ActiveRecord::Base
# ...
end
class Product < ActiveRecord::Base
# ...
end
class Customer < ActiveRecord::Base
# ...
end
Customer.establish_connection(
:adapter => "mysql",
:host => "dbserver.com",
:database => "backend",
:username => "chicho",
:password => "piano")

在我們前面所寫的depot程序中,我們沒有使用establish_connection方法,而是在config/database.yaml文件中指定了數據庫連接的參數信息,對於大多數rails程序來說,這是首選的方式,不僅因為將配置信息和代碼分離,而且在測試和部署時也能帶來方便,上面的表格裡列出的參數都可以應用在YAML文件中,這一點我們在前面的配置文件一節已經有介紹。

最後,如果你通過一個標記訪問establish_connection(),Rails會在database.yaml文件中查找名字對應的配置節,來獲取鏈接的參數,這樣就可以將所有的數據庫連接配置從代碼中分離出來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved