驱动力
开发人员在面对一个新业务模块时,习惯将一个业务分解为多个增、删、改、查操作以及事务操作。我们不难发现大多数业务系统使用查询操作的比重很大,而且业务系统的复杂也体现在查询操作,这些复杂往往表现在多表关联查询和动态查询条件查询上。在开源界Ibatis和Hibernate等技术框架也对单表的动态条件查询做了很好的支持,但是对于多表的联合查询的动态条件查询还未支持,因此DSE的概念产生。SQL引擎接受页面的查询参数,根据SQL模板的去自动匹配并最终生成SQL语句。
DSE 组件架构
1. View
与Web的View交互组件,主要处理从View层传递到DSE引擎时的不匹配性。View采纳了OGNL方案。并且在OGNL的基础上,构建了OGNLValueStack的机制,从而比较完美的解决了数据流转中的不匹配性。
2. SQL build
根据SQL 模板和页面的请求条件动态生成SQL语句。
3. SQL Execute
根据SQL build组件生产的SQL语句,然后根据前台页面查询条件对应类型匹配变量,并使用JDBC 的绑定变量API去 执行SQL。
4. Result
处理放回结果,并发给ServerContext。
5. Reader
读取SQL模板中的信息,将实例化的SQL模板放入 Context DSE中。
6. SQL Template
SQL模板是动态SQL组装SQL预警的根据,SQL模板包含:基础SQL模板、条件类型配置信息两部分信息。
7. Context DSE
存储SQL 模板信息。在DynamicSqlEngine启动时,将SQL模板存储在Context DSE 中。
8. DynamicSqlEngine
DynamicSqlEngine 组件是整个引擎的灵魂,负责各个组件的调度,同时负责整个引擎日志记录和异常处理功能。下面是DynamicSqlEngine 引擎的工作原理:WebContext启动是,调用Reader组件读取SQLTemplate,并加载到Context中;当页面有查询请求后,由View组件封装数据,DSE组装动态组装SQL;组装完成后交给SE组件去执行;最后将SE结构给Result组件,放回给页面(Servlet Context);View 获取业务熟悉,并将页面属性映射到 Context 中。
特性
1. 动态构造sql条件语句,提供sql拼接与使用占位符两种方式
2. 采用绑定变量的形式
3. 数据类型的修饰
4. 对SQL注入攻击的防范
项目详细发布地址:
http://code.google.com/p/worldeasy/
这是我的关于动态SQL引擎的设计思路,请大家给些建议。目前代码正在完善中,更多的请关注google code 的进度
备注:
1. DSE:
2. 动态条件查询:查询的条件是变化的。
相关推荐
DSE加密系统与绿盾加密系统的功能对比文件,可以给需要的用户提供参考
香港dse數學幾何關係.pdf
02_时序优化工具DSE1
迅软DSE企业版V6防泄密系统
发电机DSE5510控制器手册,发电机多机联网运行
它提供了内部组件,例如动态符号执行(DSE)引擎,动态污点引擎, x86 , x86-64 , ARM32和AArch64指令集体系结构(ISA)的AST表示, SMT简化过程, SMT求解器接口以及最后但并非最不重要的是Python bindings 。...
DSE Design Space Exploration 笔记.md
MotorCtr_DSE.rar电机仿真sinulimk基于动态转速估计
fimg_3dse_shaders.pdf 3d opengl 6410
一个带有GUI、Simulink 3D模拟的四旋翼仿真程序。控制参数、目标点可调。使用时先打开simulink模型,再运行GUI_Config.m即可
简简单单
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:dse_driver-2.5.0-cp27-cp27m-manylinux1_i686.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
干旱环境下羊柴DSE与AM真菌和土壤因子关系研究,张娟,贺学礼,为了探明干旱环境下风蚀和水蚀对土壤资源的影响,于2013年6月选取内蒙古正蓝旗青格勒图梁地,设置梁底、梁坡和梁顶不同样地,从羊�
des加密所需的 sunjce_provider.jar
静态过PG 通用补丁过保护和驱动程序签名强制禁用 UPGDSED Universal PatchGuard and Driver Signature Enforcement Disable
SATA NAS SOC,200MHz ARM926EJS核 SATA接口的NAS用处理器,集成USB2.0 HOST接口,Ethernet控制器,DDR SDRAM控制器,PCI HOST接口,可以扩展PCI外设。
轨迹规划,判断研磨均匀性,从而判断研磨质量
关于york大学的des专业的课程,看看国外需要学些什么,这样可以提高自己的水平
DSE_Java_Singleton 将此程序与DataStax DSE Java驱动程序手册中提供的链接一起使用,以初步了解创建程序和设置DSE会话。 背景 在此示例中,DSE会话(您将通过其连接到DSE的对象)已设置为单例类。 在我们的示例...
WindowsD, 禁用DSE和 WinTcb ( 不破坏 DRM ) WindowsD - 修复损坏的Windows非驱动程序将不会加载,进程是 unkillable,注册表不能被编辑。 风是 3rd 方"越狱",所以管理员可以删除现代 Windows 版本中引入的一些mal...