关于将MyBatis中的ORDER BY语句抽象到base中的考虑

问题引出:

                 以前对查询的数据进行排序,多也是这么写:

                

                这导致我们在多个查询语句进行排序时每个语句都要去写,并且排序字段也是固定的,并不具有灵活性,比方说下次我们想通过t.Province排序,那不是都的改,所以我们引出另一种实现方法,下面就让我们来具体看看是怎么实现这个方法的。

       首先我们的so在mapper中的映射也要相应的变一下:

         

        我们发现多了一个<include refid="sqlmap.common.Order_By_Clause" />语句。这是什么呢?让我们找到这个文件一探究竟:

       

        我们发现这个Order_By_Clause中多了一个排序的sorts的集合,并且要留意我们这个排序的Field必须要是别名为 t的数据库表哦。

        那这个sorts的集合又是什么呢?我们在Util层中找到了这个一个Sort.java类:

       

                      这个类是在什么地方使用的呢,我们发现在我们原来的BasePageSO中貌似有它的身影哦:

                     

                     

                   以此我们在使用继承了该BasePageSO的自己的SO时,我们便有了和其他的排序字段相同的ORDER BY字段,分成排序类型(递增、递减)和排序字段,这样不就更灵活了许多。

                    同时我们希望这个排序字段是在前台进行设置的,所以我们在前台ActionScript的BasePageSO中也加入了这个sort元素:
                  

                  当然前台对应的Sort.as也是不可避免的:
                  

                 我们在前台又是怎么使用的呢?那就看一个示例吧:

               

               这样我们似乎就成功的将这个ORDER BY 从后台搬到了前台,而且实现了排序的灵活性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值