开发通用查询框架可行吗?

ychsjcg 2005-06-13 01:03:59
我一直想着在管理应用系统中,查询占了不少的比例,为什么不做个这样的通用框架?
大致是在jsp中做个自定义标记,负责结果的显示和重新构造查询数据单元,在action中构造查询对象,生成SQL语句,在DAO获取数据后,转到显示页进行格式化输出,从而形成一个圆环。
这样做似乎是把对象从输入、处理、输出都捆绑在一起了。不知那位大哥以前作过这样的设计,给一点经验。
另外对这种设计方式,大家可以进行评论,发表一些自己的看法,我希望这个框架真的可以起到减轻我们重复劳动的作用。
谢谢!
...全文
203 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ychsjcg 2005-06-14
  • 打赏
  • 举报
回复
我觉得完全可以实现的,只是不够完美,如果采用好的模式,在使用后逐渐完善,最好的想法是,他就是用于查询,只要写一个查询的SQL语句给QUERY对象,他就可以完成从页面到后台的所有工作!
cyicecream 2005-06-14
  • 打赏
  • 举报
回复
实际应用中才能发现更大的问题,现在只能在理论上空想。
通用的框架应该做不了,只能做满足于特定的实际开发项目中
ychsjcg 2005-06-14
  • 打赏
  • 举报
回复
public class Query
{
private String orderString; //排序用的SQL语句
private java.util.ArrayList tableList; //SQL表集合
private String whereString; //全局where条件 即不受客户查询条件影响的 查询条件 和多表关联语句
private java.util.ArrayList resultList;//查询结果集合
private java.util.ArrayList feildNameList;//查询字段集合
ychsjcg 2005-06-14
  • 打赏
  • 举报
回复
public class Table
{
private String dataName; //数据库表名
private String easyName; //别名
private java.util.ArrayList fieldList; //相关字段
private java.util.ArrayList showList; //显示字段
ychsjcg 2005-06-14
  • 打赏
  • 举报
回复
public class Feild
{
public static int STRING_TYPE = 1; ////字符型数据(varchar,char)
public static int INTEGER_TYPE = 2; ////数值型数据(int,float,numeric)
public static int DATE_TYPE = 3; ////日期型数据

public static int SELECT_TYPE = 1; ////只显示
public static int WHERE_TYPE = 2; ////不显示,在WHERE中出现
public static int BOTH_TYPE = 3; ////两种情况同时有

public static String AND = " AND "; ////AND关系
public static String OR = " OR "; ////OR关系

private String dataName; //数据库字段名称
private String showName; //页面显示名称
private int valueType; //数据类型
private String maxValue; //最大数值
private String minValue; //最小数值
private String value; //等值
private String operator = "AND";//逻辑操作
private int feildType; //字段用途
ychsjcg 2005-06-14
  • 打赏
  • 举报
回复
终于作出来了!
现在的问题是字段的关系太简单,一个字段只能处理=,>,<,between..and,不能进行更多的组合,

比如 a.ID = 1 OR a.ID=2 OR a.ID=3

在现实应用中,有没有提供能生成带()的SQL语句这样的查询界面,比如

a.id >100 AND (a.name LIKE '111' OR a.age='18')

seeku 2005-06-13
  • 打赏
  • 举报
回复
值得研究的一个问题!
ychsjcg 2005-06-13
  • 打赏
  • 举报
回复
比如Eclipse中使用Hibernate就可以从三个不同层次进行,只要确定了一个层次,其他两个层次都会自动构造。
ychsjcg 2005-06-13
  • 打赏
  • 举报
回复
其实,主要是前台的显示方式太古板了,至于业务的话就是多表关联查询,有一种“装饰器”的设计模式,不知道有没有帮助?
jyy7751 2005-06-13
  • 打赏
  • 举报
回复
可以,但对业务比较复杂的就不行了
sunmingdong 2005-06-13
  • 打赏
  • 举报
回复
可行,好处是提高开发效率,能保证操作的一致性

缺点:降低了操作的灵活性,会发现有很多限制的,比如:查询出来的生成数据的显示格式(报表格式)的变化

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧