美文网首页码神之路:Perl篇
DBIx::Custom框架实践方法

DBIx::Custom框架实践方法

作者: JSON_NULL | 来源:发表于2017-12-09 15:24 被阅读30次

    简介

    本文旨在说明在实际的软件开发过程中如何使用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

    相关文章

      网友评论

        本文标题:DBIx::Custom框架实践方法

        本文链接:https://www.haomeiwen.com/subject/tuouixtx.html