`
hai_lei
  • 浏览: 3049 次
  • 性别: Icon_minigender_2
  • 来自: 大连
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

Awake框架简介

 

Awake 十分钟做一个查询,分页列表,增减一列只需几秒钟(修改xml)。

在软件开发中我们经常会遇到这些问题:

1.       在开发查询检索页面时,经常遇到客户要求增减查询项,这时需要修改,查询页面和源代码。

2.       在开发列表页面时,经常遇到客户要求增减列表项,这时需要修改,查询页面和源代码。

3. 每个应用都是由多个列表和查询检索页面组成的,在对上述两个问题修改时会导致修改多处页面和源码。有可能会漏改或错改,导致软件不稳定维护量增大。

4.       每开发一个“分页列表”就会写一套用于查询分页的代码,你会发现写的都是重复的代码。

5.       查询条件承接问题,一个操作下有多个子操作,子操作查询条件需要承接父操作的查询条件,并且每个子操作都有自己的查询条件。这种问题在维护sqlhql时会很麻烦。

 

Awake很好的解决了上述问题,使用Awake开发查询、统计、分页列表时,只需要做你必须做的事情,

哪些是必须做的事情?

第一件事:你想得到哪些数据?(在action中写hql)。

第二件事:得到数据后显示哪些数据以及显示数据所用的位置、宽度等(配置xml

第三件事:页面css样式(好像应该是美工的事)。

完成了上面三件事,Awake就会自动生成你说需要的“查询”“统计”“列表”

 

Awake是在hibernate框架基础上封装的框架,Awake故名思议“苏醒”,hibernate的反义词,hibernate使数据沉睡到硬盘,Awake使数据苏醒展现到客户面前。在数据展现方面有一些通用的共性,awake是将这些通用的共性集中管理,再展现到客户面前。

例如:一个字段是否在查询页面中显示,或者说是否可查询,在列表中是否显示这个字段,显示这个字段的话这个字段占用列表的宽度,在页面中显示的名字等…,awake将集中管理这些问题。

目前awake 1.0版本主要功能,通用查询、统计、列表(包含分页),“通用”的意识是你只需要配置xml文件,就会根据xml动态的生成查询页面,列表页面,例如:通用查询页面,页面中的查询项是根据xml动态添加的。

图一:

查询列表中的列也是可以根据配置动态改变。

在图中可以看到“办理状态-主分类”中间有个“-”表示主分类字段是关联类中的字段,awake支持全部hibernate hql语法格式(包括where后面的子查询),只要hibernate能够通过的查询语句就可以用到awake框架上。

图二:

经过修改xml 配置文件,所有基于这个xml文件生成的列表的 主题词将不显示,统一管理字段是否显示,是否可查询。

图三:

此外“通用列表”已经包含了非常完善的分页功能。

 

Awake是一个开放的框架,所有的类都是针对接口编程,可以很方便的与其他框架结合,为一要求你用的是hibernate

在上面图中可以看到数据展现使用的jsp+Jstl struts标签两种展现方式,有的朋友说了现在谁还用 jsp 都用ajax了,awake没问题可以满足您的要求,在awake中有个数据解析模块可以提供不同的数据解析器,根据解析器的不同将解析出不同结构的数据,

例如:ajax一般使用xmljson结构的数据,可以调用相应的解析器得到想要的数据,Awake已经实现了xmlmap两种结构的解析器,json解析器将于以后的版本推出。

可能有的朋友问了,你这个框架的性能怎么样啊!!!

我做过实际的测试,tomcat5.5 oracle10g数据库 主表100万条记录,关联表也是100万条,按时间排序 关联查询满足查询条件5000条,分页每页100条,每条记录500字节以上, 20074000元买的笔记本 1g内存,用时0.6秒。(只做了索引优化)

还有的朋友问了安全不啊 会不会有sql注入攻击啊,朋友们请放心所有的查询条件在组hql之前都有验证的,在给查询条件负值时都用的query.set() 标准方法,所以不会有sql注入攻击问题。

还有就是使用awake查询数据,绝对不会有不关闭session问题,保证您的系统稳定运行。

 

 

 

 

©2008 HengY 

分享到:
评论

相关推荐

    通用查询框架 Awake-API

    Awake框架hql解析模块,支持Hql子查询的用法: http://hi.baidu.com/jfheng/blog/item/96ad1852d338a4080cf3e318.html 用Awake开发查询、统计分页列表,简单多了 Awake 在Ajax应用上存在的小瑕疵请大虾们帮忙解决:...

    Awake 框架 Demo 网址:http://hi.baidu.com/jfheng

    Awake 十分钟做一个查询,分页列表,增减一列只需几秒钟(修改xml)。 在软件开发中我们经常会遇到这些问题: 1. 在开发查询检索页面时,经常遇到客户要求增减查询项,这时需要修改,查询页面和源代码。 2. 在开发...

    基于hibernate 通用查询 Awake 框架 Demo 网址:http://hi.baidu.com/jfheng

    Awake 十分钟做一个查询,分页列表,增减一列只需几秒钟(修改xml)。 在软件开发中我们经常会遇到这些问题: 1. 在开发查询检索页面时,经常遇到客户要求增减查询项,这时需要修改,查询页面和源代码。 2. 在开发...

    Awake 1.0.1 个人版,增添页面排序、xml数据解析器 等功能

    Awake框架hql解析模块,支持Hql子查询的用法: http://hi.baidu.com/jfheng/blog/item/96ad1852d338a4080cf3e318.html 上面有最新功能介绍,文档说明,另外希望大家给我留言,提供一些好的建议 通用查询页面中的...

    基于hibernate 通用查询 框架 Awake 基础jar包

    Awake 十分钟做一个查询,分页列表,增减一列只需几秒钟(修改xml)。 网址:http://hi.baidu.com/jfheng 在软件开发中我们经常会遇到这些问题: 1. 在开发查询检索页面时,经常遇到客户要求增减查询项,这时需要修改...

    基于hibernate 通用查询框架,包含查询、分页列表 功能

    Awake框架hql解析模块,支持Hql子查询的用法: http://hi.baidu.com/jfheng/blog/item/96ad1852d338a4080cf3e318.html 上面有最新功能介绍,文档说明,另外希望大家给我留言,提供一些好的建议 通用查询页面中的...

    awake-template

    特征基于Bulma css框架的简单现代设计(未使用的css通过清除)网站搜寻静态生成的用于帖子和类别的API Disqus发帖评论Mailchimp支持的新闻通讯高度可定制的开箱即用配置注重性能隔离的Netlify CMS驱动程序(计划将来...

    Pomelo 游戏框架 集成 Unity 客户端 Demo

    在Unity中,这可能在游戏对象的Start()或Awake()方法中进行: ```csharp pomeloClient.Connect(); ``` 5. **监听事件**:Pomelo客户端提供了一系列事件来处理连接状态变化、接收到的消息等。例如,你可以监听`...

    C#基于Unity引擎的游戏逻辑框架.zip

    《C#在Unity引擎中的游戏逻辑框架构建》 Unity引擎是一款强大的跨平台游戏开发工具,以其高效的性能和易用性深受开发者喜爱。在Unity中,C#被广泛用于编写游戏逻辑,因为它提供了丰富的编程功能和良好的面向对象...

    insightface.ai.awake

    基于Bulma css框架的简单现代设计(未使用的css通过清除) 网站搜寻 静态生成的用于帖子和类别的API 由Disqus提供动力的评论 Mailchimp支持的新闻通讯 高度可定制的开箱即用配置 注重性能 隔离的Netlify CMS驱动程序...

    uMVVM-Annotation:对开源框架uMVVM的注解

    Awake ↓ Initialize(当该View第一次为其绑定的ViewModel赋值的时候,调用该方法),同时,调用ViewModel的Initiallize方法 ↓ 进行显示(Reveal) 或 进入Start ↓ 进行显示的情况 : 此处进入 OnApear,OnReveal,...

    GameFramework食用指南.doc

    GameFramework是一款专为游戏开发设计的框架,旨在提高游戏开发的效率和代码的可维护性。这个框架分为两个主要部分:GameFramework (GF) 和 UnityGameFramework (UGF)。GF是一个独立于Unity引擎的系统,它负责处理...

    NTFrame.rar

    《Unity消息机制框架详解》 Unity引擎作为一款强大的游戏开发工具,其内置的消息系统是实现游戏逻辑和组件间通信的重要手段。"NTFrame.rar"这个压缩包文件内包含的"NTFrame.unitypackage",很显然,是一个专门针对...

Global site tag (gtag.js) - Google Analytics