J2EE企业级软件架构越来越鼓吹N层体系架构,很多架构师陷入了为架构而架构的怪圈,引入越来越多的没有测试过的开源组件,增加越来越多的适配层,导致系统底层架构没有人能驾驭,平台性能问题一旦出现,就找借口是数据量大、并发访问高,通过加硬件救急!
本文先对Java平台SQL查询语句集中管理提出一个实用方案。其背景是目前的J2EE架构大量使用hibernate等ORM框架,SQL/HQL分散在各模块的Java类中,而且很多采用拼SQL的方式(非预编译即PreparedStatement方式执行),导致至少带来如下两个严重问题:
- SQL性能无法预测,至少运行前无法检测(目前大部分现象都是出现性能问题到生产环境采集SQL,但是由于业务的周期性,存在SQL的覆盖率问题,另外采集毕竟是个相对专业的技术活);
- 查询逻辑变化,由于SQL/HQL散落在代码的各个角落,必然导致维护起来很麻烦,且数据库设计人员无法知道程序员的SQL语句是否正确;
- 不支持热部署,尤其是在集群部署环境下,部署工作运维人员头疼!
解决思路我画了一个图:
大概描述一下:
- 由core_query表统一管理SQL查询语句;
- 开发一个管理界面维护core_sql表,并更新至分布式缓存;
- 应用启动时从core_query表加载SQL语句至缓存,应用从缓存中获取SQL语句;
- SQL语句采用命名查询的概念,即每条SQL语句都有一个唯一的名称,可以采用名称空间命名;
- 应用调用采用spring提供的jdbcTemplate的queryForList(String queryName, Object[] args)方法进行查询,返回类型为:List<Map>,尤其在jstl,显示数据与List<User>完全一致;
- 每条SQL语句可以扩展支持查询缓存;
实现目标:
- 事前准确评估性能:所有查询语句统一管理,便于在设计开发阶段准确评估性能问题,避免系统运行过程中出现的性能瓶颈;
- 查询逻辑变更后维护方便;
- 支持热部署,支持集群环境热部署;
一些经验:
- 所有select语句(除通过主键load单条记录外),全部采用命名查询,由core_query表统一存储管理;
- 单条记录的insert、delete、update和load,可以采用ORM技术,在dao层完成数据库读写;
- 批量的delete和update语句,采用命名查询方式;
- 专注查询,避免了 SQL 或者 HQL 代码分散于整个应用程序中的情况;
待续...
- 大小: 13.5 KB
分享到:
相关推荐
预订管理模块:包括新预订,预订的查询(包括模糊查询)及预订信息的删除;2.接待管理模块:包括入住登记,入住记录的查询,删除;其中删除功能设有用户权限;3.收银管理模块:包括收银信息的查询,修改,和添加;4....
j2ee解决方案j2ee解决方案各种框架解决方案j2ee解决方案j2ee解决方案各种框架解决方案j2ee解决方案j2ee解决方案各种框架解决方案
J2EE集群设计开发部署(基于IBM+WAS) J2EE集群设计开发部署(基于IBM+WAS)
J2EE程序中的SQL语句自动构造方法讲解
j2ee+SQL
J2EE 热部署 J2EE 热部署
借用j2ee中的request.getParameterNames()方法可以读到表单中的所有元素的名称,...现在如果我们写一个方法,传入request对象,再把table_name,col_x,value_x作为参数传入方法,那么我们可以轻松的自动构造SQL语句了。
8.2.单机应用可以透明的迁移到集群环境 -- 否定! 8.2.1.HTTP会话 8.2.2.缓存 8.2.3.静态变量 8.2.4.外部资源 8.2.5.特殊的服务 8.3.分布式结构比单一结构更灵活 ?C 未必 9.总结 10.关于作者 11.附录A:中英文对照...
提供访问sql 2000数据库的jar文件和例题
《J2EE构建企业级应用解决方案》一书配套光盘
j2ee 平台下的分布式项目管理模型及实现
在通常的Web开发中对INSERT、DELETE、UPDATE 三种SQL语句的处理可以说是无处不在,如果简单的都用手工来构造这些SQL语句的话, 一方面给我们的开发带来很大的工作量, 另一方面系统灵活性受到很大的限制。
Microsoft SQL Server JDBC Driver3.0驱动文件 MySql连接数据库驱动文件 以及连接方法 采用开发工具MyEclipse SQL2000 MySql
源代码 j2ee sql数据库 全部代码
开发完整J2EE解决方案的八个步骤 对于我们可以更好的了解J2EE的开发
基于J2EE平台的客户管理系统,采用sql server数据库,功能完善
本文是一篇基于WEB的网上图书馆管理系统,主要特点是利用目前较流行的互联网技术,是的以前人工管理的读书馆更加高效 简洁,本文采用了J2EE技术,和Javabeans技术,使用了SQL Server 2000作为数据而且做了较为完全的...
J2EE应用程序中SQL语句的自动构造方法 INSERT、DELETE、UPDATE 三种SQL语句是数据库技术的三大基本语句。 在通常的web开发中对它的处理可以说是无处不在. 如果简单的都用手工来构造这些SQL语句的话, 一方面给我们...
这是一个课程项目基于J2EE和SQL2005开发的,请大家指点。
这些jar包用于在做J2EE项目时,需要和SQL Server数据库连接时所用。