簡介
本文旨在說明在實際的軟件開發(fā)過程中如何使用DBIx::Custom框架完成對數據庫的操作即纲。
擴展last_id方法 或 generate_id 方法
在實際的開發(fā)過程中隧哮,有很多表的唯一標識字段(主鍵)需要自動生成。有些數據庫對于int型的主鍵提供了自動生成的方法(如Mysql)。但也有些數據庫中沒有自動生成主鍵的方案可用嘴秸。
如果數據庫已經提供了自動生成主鍵的方案伺帘,在新加一條記錄后,我們需要獲取到新增記錄的主鍵值则果。在Mysql中可以使用LAST_INSERT_ID()
方法獲得幔翰。而對于數據庫無法自動生成的主鍵,我們需要提供一個方法來生成主鍵西壮,并在新增一條記錄時把主鍵也加到記錄之中遗增。
綜上所述需要擴展的方法有兩個:
- last_id方法,用于獲取最后一次增加記錄的主鍵值款青。
- generate_id方法做修,用于生成將要添加到表中的記錄的唯一標識。
DBIx::Custom::Where模塊中的clause抡草。
DBIx::Custom::Where可用于生成復雜的where子句饰及,并且DBIx::Custom::Where中的clause有一個特點,就是在param中沒有定義鍵康震,在生成where子句時會被忽略燎含。也就是說在clause屬性中已經指定的where 條件,如果在param中不存在腿短,則在最終生成的where子句中也是不存在的屏箍。
基于這個特性,我們可以針對某個橘忱,或某幾個類似的業(yè)務赴魁,寫出一個復雜的clause屬性;對于不同的業(yè)務來說钝诚,需要的查詢條件不同颖御,可以把從客戶端得到的查詢條件作為param,從而得到不同的where子句凝颇。
一定要用好DBIx::Custom::Mapper
DBIx::Custom::Mapper是一個對參數進行映射的模塊潘拱,非常的好用秉继。如果你從客戶端接收過來的方法與數據庫中的字段名不對應,就可以使用這個模塊進行映射泽铛。
它最主要的應用場景如下:
- 在insert和update時對參數名進行調整尚辑。
- select語句中對where子句中的參數值進行調整(如使用like操作符需要給參數值加通配符等)。
- 對帶有join子句的查詢盔腔,對查詢結果中的鍵名進行調整杠茬。
分頁控制
在DBIx::Custom框架中,要對select的結果進行分頁弛随,就只能使用select 方法的 append 參數選項了瓢喉。如果想要把分頁控制功能做的更好用、更易用舀透,就只能自己寫個擴展了栓票。
1