先簡單介紹一下active record:
active record(中文名:活動記錄)是一種領域模型模式,特點是乙個模型類對應關係型資料庫中的乙個表,而模型類的乙個例項對應表中的一行記錄。active record 和 row gateway (行記錄入口)十分相似,但前者是領域模型,後者是一種資料來源模式。關係型資料庫往往通過外來鍵來表述實體關係,active record 在資料來源層面上也將這種關係對映為物件的關聯和聚集。
active record 驅動框架一般兼有 orm 框架的功能,但 active record 不是簡單的 orm,正如和 row gateway 的區別。著名的例子是全棧(full stack) web 開發框架 ruby on rails ,其預設使用乙個純 ruby 寫成的 active record 框架來驅動 mvc 中的模型層。
在 martin fowler 的 《企業應用架構模式》 一書中曾詳細敘述了本模式。
以下是著名的 active record 驅動框架:
sqlobject(python)
ruby on rails activerecord (ruby)
yii framework activerecord (php)
castle activerecord (.net)
幫助理解active record**
<?php
define('dbhost', 'localhost');
define('dbuser', 'root');
define('dbpass', '');
define('dbname', 'test');
define('table_prefix', 't_');
class activerecord
private function connect()
return self::$link;
} public function __set($name, $value)
private function implodefields($cond)
return implode(', ', $fields);
} public function add() ` set $fields";
$this->query($sql);
} public function findbyid($id) ` where ``='$id' limit 1";
$data = $this->getone($sql);
return $this->makeobjfromarray($data);
} private function makeobjfromarray($data)
return $obj;
} private function query($sql)
private function getone($sql)
return false;
} }
class user extends activerecord
$user = new user();
$user->name = '熱電影';
$user->email = 'www.redianying.com';
$user->add();
$user = $user->findbyid(1);
print_r($user);
SVM sklearn python實現小示例
本示例是乙個簡單的試驗,甚至連資料集都不用額外準備,旨在加深對svm和核函式的理解,並看看如何利用 scikit learn 中的svm,編譯環境是 jupyter notebook,可以通過安裝 anaconda,匯入 scikit learn 庫可以很容易實現,github示例 本例中變沒有用外...
C 介面的顯示實現和隱示實現
介面的實現很多人都知道,但介面的實現方式分顯示實現和隱示實現不知道是不是很多人知道呢!但我覺的公司技術部裡很少提到這個,就想起來寫寫這篇blogs。目前常用的方式 public inte ce ireview public class shopreview ireview 這種方式是隱示實現 ire...
C 介面的顯示實現和隱示實現
介面的實現很多人都知道,但介面的實現方式分顯示實現和隱示實現不知道是不是很多人知道呢!但我覺的公司技術部裡很少提到這個,就想起來寫寫這篇blogs。目前常用的方式 public inte ce ireview public class shopreview ireview 這種方式是隱示實現 ire...