DBIx::Custom框架實踐方法

簡介

本文旨在說明在實際的軟件開發過程中如何使用DBIx::Custom框架完成對數據庫的操作。

擴展last_id方法 或 generate_id 方法

在實際的開發過程中,有很多表的唯一標識字段(主鍵)需要自動生成。有些數據庫對于int型的主鍵提供了自動生成的方法(如Mysql)。但也有些數據庫中沒有自動生成主鍵的方案可用。

如果數據庫已經提供了自動生成主鍵的方案,在新加一條記錄后,我們需要獲取到新增記錄的主鍵值。在Mysql中可以使用LAST_INSERT_ID()方法獲得。而對于數據庫無法自動生成的主鍵,我們需要提供一個方法來生成主鍵,并在新增一條記錄時把主鍵也加到記錄之中。

綜上所述需要擴展的方法有兩個:

  1. last_id方法,用于獲取最后一次增加記錄的主鍵值。
  2. generate_id方法,用于生成將要添加到表中的記錄的唯一標識。

DBIx::Custom::Where模塊中的clause。

DBIx::Custom::Where可用于生成復雜的where子句,并且DBIx::Custom::Where中的clause有一個特點,就是在param中沒有定義鍵,在生成where子句時會被忽略。也就是說在clause屬性中已經指定的where 條件,如果在param中不存在,則在最終生成的where子句中也是不存在的。

基于這個特性,我們可以針對某個,或某幾個類似的業務,寫出一個復雜的clause屬性;對于不同的業務來說,需要的查詢條件不同,可以把從客戶端得到的查詢條件作為param,從而得到不同的where子句。

一定要用好DBIx::Custom::Mapper

DBIx::Custom::Mapper是一個對參數進行映射的模塊,非常的好用。如果你從客戶端接收過來的方法與數據庫中的字段名不對應,就可以使用這個模塊進行映射。

它最主要的應用場景如下:

  1. 在insert和update時對參數名進行調整。
  2. select語句中對where子句中的參數值進行調整(如使用like操作符需要給參數值加通配符等)。
  3. 對帶有join子句的查詢,對查詢結果中的鍵名進行調整。

分頁控制

在DBIx::Custom框架中,要對select的結果進行分頁,就只能使用select 方法的 append 參數選項了。如果想要把分頁控制功能做的更好用、更易用,就只能自己寫個擴展了。

1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。