Awake 十分钟做一个查询,分页列表,增减一列只需几秒钟(修改xml)。
在软件开发中我们经常会遇到这些问题:
1. 在开发查询检索页面时,经常遇到客户要求增减查询项,这时需要修改,查询页面和源代码。
2. 在开发列表页面时,经常遇到客户要求增减列表项,这时需要修改,查询页面和源代码。
3. 每个应用都是由多个列表和查询检索页面组成的,在对上述两个问题修改时会导致修改多处页面和源码。有可能会漏改或错改,导致软件不稳定维护量增大。
4. 每开发一个“分页列表”就会写一套用于查询分页的代码,你会发现写的都是重复的代码。
5. 查询条件承接问题,一个操作下有多个子操作,子操作查询条件需要承接父操作的查询条件,并且每个子操作都有自己的查询条件。这种问题在维护sql或hql时会很麻烦。
Awake很好的解决了上述问题,使用Awake开发查询、统计、分页列表时,只需要做你必须做的事情,
哪些是必须做的事情?
第一件事:你想得到哪些数据?(写hql)。
第二件事:得到数据后显示哪些数据以及显示数据所用的位置、宽度等(配置xml)
第三件事:页面css样式(好像应该是美工的事)。
完成了上面三件事,Awake就会自动生成你需要的“查询”“统计”“列表”
Awake是在hibernate框架基础上封装的框架,Awake故名思议“苏醒”,hibernate的反义词,hibernate使数据沉睡到硬盘,Awake使数据苏醒展现到客户面前。在数据展现方面有一些通用的共性,awake是将这些通用的共性集中管理,再展现到客户面前。
例如:一个字段是否在查询页面中显示,或者说是否可查询,在列表中是否显示这个字段,显示这个字段的话这个字段占用列表的宽度,在页面中显示的名字等…,awake将集中管理这些问题。
目前awake 1.0版本主要功能,通用查询、统计、列表(包含分页),“通用”的意识是你只需要配置xml文件,就会根据xml动态的生成查询页面,列表页面,例如:通用查询页面,页面中的查询项是根据xml动态添加的。
图一:
查询列表中的列也是可以根据配置动态改变。
在图中可以看到“办理状态-主分类”中间有个“-”表示主分类字段是关联类中的字段,awake支持全部hibernate hql语法格式(包括where后面的子查询),只要hibernate能够通过的查询语句就可以用到awake框架上。
图二:
![](https://i-blog.csdnimg.cn/blog_migrate/5ad0a4f7faba8c98b0a2f06138883990.jpeg)
经过修改xml 配置文件,所有基于这个xml文件生成的列表的 主题词将不显示,统一管理字段是否显示,是否可查询。
图三:
![](https://i-blog.csdnimg.cn/blog_migrate/1ccbab6f6b16cc5edaf273f6f57c3410.jpeg)
此外“通用列表”已经包含了非常完善的分页功能。
Awake是一个开放的框架,所有的类都是针对接口编程,可以很方便的与其他框架结合,为一要求你用的是hibernate。
在上面图中可以看到数据展现使用的jsp+Jstl 或 struts标签两种展现方式,有的朋友说了现在谁还用 jsp啊 都用ajax了,awake没问题可以满足您的要求,在awake中有个数据解析模块可以提供不同的数据解析器,根据解析器的不同将解析出不同结构的数据,
例如:ajax一般使用xml或json结构的数据,可以调用相应的解析器得到想要的数据,Awake已经实现了xml和map两种结构的解析器,json解析器将于以后的版本推出。
可能有的朋友问了,你这个框架的性能怎么样啊!!!
我做过实际的测试,tomcat5.5 oracle10g数据库 主表100万条记录,关联表也是100万条,按时间排序 关联查询满足查询条件5000条,分页每页100条,每条记录500字节以上, 2007年4000元买的笔记本 1g内存,用时0.6秒。(只做了索引优化)
还有的朋友问了安全不啊 会不会有sql注入攻击啊,朋友们请放心所有的查询条件在组hql之前都有验证的,在给查询条件负值时都用的query.set…() 标准方法,所以不会有sql注入攻击问题。
还有就是使用awake查询数据,绝对不会有不关闭session问题,保证您的系统稳定运行。
Awake架构说明 Awake使用说明 点击下载
资源引用:
http://hi.baidu.com/jfheng/blog/item/7a876f11272cc0c0a6ef3f41.html