螃蟹學PHP設計模式之Data Access Objects模式

來源:互聯網
上載者:User

標籤:java   os   io   資料   for   cti   ar   時間   

3.Data Access Objects模式

今天又要上班了,不過公司的事情倒不多,先花點時間回憶之前學的兩個設計模式吧......好,複習完了,開始學習新的Data Access Objects模式。螃蟹發現其實之前的項目基本都用上了Data Access Objects模式,因為在程式中手寫sql實在是效率不高且不易於維護。這就好比你有個親戚在美國,你每個月都想送點東西給他,然後你每次都要做飛機汽車跑到他哪兒去,東西給他再風塵僕僕地回來,結果有一天你突然發現有快遞這服務,你每次把東西交給快遞就啥事不管了,由此感歎真方便啊。其實螃蟹也覺得Data Access Objects模式真的如同快遞員一樣方便,之前用過的各種PHP MVC架構和JAVA WEB架構以及Python ORM架構等,無不採用了這種設計模式。在操作資料庫時,可以先建一個Base抽象類別來建立串連,再每個表對象繼承抽象類別,實現對錶的操作。

參考項目模組:資料庫訪問層

這個資料庫訪問層螃蟹覺得還是很重要的,最開始做項目的時候基本都是自己寫的,現在用了架構之後確實沒怎麼在意了,以後還是要多研究一下架構技術,不能依賴架構,這樣螃蟹怎麼能拿到好的offer.

資料庫連接基類:BaseConnect.class.php

<?php class BaseDAO{protected $_connection = null;protected $_username = ‘root‘;protected $_password = ‘‘;protected $_host = ‘127.0.0.1‘; protected $_db = ‘test‘;protected $_charset = ‘UTF8‘;function __construct(){$this->__connect();}private function __connect(){$this->_connection = mysql_connect($this->_host,$this->_password,$this->_password);mysql_select_db($this->_db,$this->_connection);mysql_query(‘set names ‘.$this->_charset,$this->_connection);}//添加資料public function add($datas){$keys = array();$values = array();foreach($datas as $k => $v){array_push($keys, $k);array_push($values,‘"‘.$v.‘"‘); }$sql = ‘insert into ‘.$this->_table.‘(‘.implode(‘,‘, $keys).‘) values(‘.implode(‘,‘, $values).‘)‘;$res = mysql_query($sql,$this->_connection);return $res;}}?>

使用者表資料結構:

CREATE TABLE `user` (`id` int(11) NOT NULL,`username` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`id`) )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;


使用者資料庫訪問對象:UserDAO.class.php

<?php require(‘BaseDAO.class.php‘);class UserDAO extends BaseDAO{protected $_table = ‘user‘;public function add($datas){parent::add($datas);} }?>

最後螃蟹測試看看: TestDAO.php

<?phprequire(‘UserDAO.class.php‘); //類比使用者資料$user = array(‘username‘=>‘螃蟹‘,‘password‘=>‘ok123456‘);//執行個體化資料庫連接層$userobj = new UserDAO();//添加資料$userobj->add($user);?>


運行看看,資料添加上了就完成了。這個DAO模式還是挺不錯的,這次學習也是對之前寫的東西進行回顧,可能很多東西自己能寫出了,但是不知道這到底叫什麼,這就做不到有理可依了。在公司蓋著被子吹空調,真忒麼冷...... 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.