我发现Jquery数据表插件对于简单的只读应用程序非常有用,我希望为用户提供分页,排序和搜索非常大的数据集(使用服务器端处理的数百万行)。
我有一个重用这段代码的系统,但我最终一遍又一遍地做同样的事情。我想编写一个非常通用的api,我基本上只需要配置检索表中使用的数据所需的sql。我正在寻找一个好的设计模式/方法来做到这一点。我已经看过这样的文章http://www.codeproject.com/Articles/359750/jQuery-DataTables-in-Java-Web-Applications并且完全理解了服务器端处理的工作原理(多次在java和asp.net中完成)。对于有人回答你可能需要深入了解服务器端处理如何在java中工作,但这里有一些问题,试图这样做:
* where子句动态更改(用户可以搜索可变数量的行)。
* order by子句因同样的原因而改变。
因此,大多数项目的步骤如下: *提取插件发送到服务器的参数(很多时候我自己添加,主要是日期范围) *构建未过滤的计数查询(这很少是动态的)。 *构建过滤后的计数查询(是动态的) *构建数据查询 *构造表的模型对象并将其作为json返回。
使用可变数量的参数设置准备好的语句会出现很多问题。似乎不太可能以一般方式动态生成sql(比如仅基于列名)。我想知道是否有其他人创造了他们正在使用的东西,或者听起来像某个特定模式是适用的。我刚刚想到创建一个可重用的过滤器在java中可能会有所帮助。任何建议将不胜感激。随意与语言无关,因为架构是我想要弄清楚的。
答案 0 :(得分:1)
我们有基本搜索条件,其中所有与DataTable相关的请求参数都映射到类属性(字段)和自定义搜索条件类,该类扩展了基础并包含特定于业务逻辑字段以进行sutom搜索。同样在服务器端,我们有一个存储库类,它将自定义搜索条件作为参数,并对数据库进行查询。
如果您熟悉C#,可以查看custom binding code和example of usage。
您也可以在Java代码中执行此类自定义绑定。