以下比较不太全面,纯粹是个人的理解。可能是针对前一篇文章的补充与说明

1、批量数据的处理比较

业务逻辑:单位A部门划转到B部门,业务规则是把A部门的100人的关联单位改为B部门,同时在人员岗位变化子表里增加一条变动记录。

业务实现:

1)存储过程实现(SP实现)(两个SQL语句)

insert into 岗位变化子表(变化前部门、变化前岗位、变化后部门、变化后岗位、生效时间、操作人、操作时间) select A,岗位,B,岗位,sysdate,当前登录用户,sysdate from 员工表 where 部门ID=A;--完成插入100条子表的数据

update 员工表 set 部门ID=B where 部门ID=A; --更新员工的部门关联

commit; --最后提交,SP本身就开启了事务机制,所以可以放心操作。

2)业务类实现1(符合面向对象的原则)

获得A部门员工对象,一般是100个员工对象的Collection,即生成的SQL语句是把所有的员工表的字段都查询出来,然后循环进行员工对象属性的变更与保存、子对象的创建与保存等业务。

3)业务类实现2(有点不太符合面向对象的原则,但效率肯定比前面一种高)

按SP方式执行SQL语句。当然要注意开启事务处理,否则可能会产生垃圾数据哟。

当然可能还有除了这三种之外的实现方式,但这三种应该是最常见的了。其它的内容这里就不展开说了。希望非专业人士可以看明白。专业人士可以自行计算一下数据库连接的次数及需要传输的数据量。

需求变更:增加操作IP的记录

所有都要做的事情:增加【岗位变化子表】数据表字段:操作IP

1)SP调整

增加参数IP,修改第一条insert语句即可。

关联修改:调用存储过程方法重新调整。重新编译发布

2)业务实现1

修改岗位变化子表的实体类。(一般是重新生成即可)

修改业务逻辑类

重新编译发布

3)业务实现2

修改岗位变化子表的实体类。(一般是重新生成即可)

修改SQL语句

重新编译发布

2、数据统计类

业务逻辑:定时(每小时或每天)更新用户排行榜(如积分排行榜),假设用户积分数据8千万条数据。

业务实现:SP的方式

创建一个Job队列执行设定的存储过程,把统计的结果存到积分排行榜的数据表里。

适应需求变化:统计的规则可能经常变化,特别是积分系统的调整也是非常频繁的(可能一周就会有一次,特别是项目上线前期),存储过程可以很快的修改测试与部署。不需要指定专门的时间去停止所有的Web服务器更新应用来满足需求的变化。

先写这些吧,写东西太耗时间了。还是等压力测试的数据出来再做一些分析吧。

转载于:https://www.cnblogs.com/liubiqu/archive/2010/08/04/1792248.html

存储过程与业务类实现业务的差异比较相关推荐

  1. 【飞秋】存储过程与业务类实现业务的差异比较

    以下比较不太全面,纯粹是个人的理解.可能是针对前一篇文章的补充与说明 1.批量数据的处理比较 业务逻辑:单位A部门划转到B部门,业务规则是把A部门的100人的关联单位改为B部门,同时在人员岗位变化子表 ...

  2. java业务类_Java_业务层开发

    业务是整个项目的核心,每一个业务的处理都是由控制层调用的(本次不考虑控制层,只考虑客户端直接调用业务层的形式),所以整个代码里业务层依然是一个标准,控制层要想取得业务层对象,一定也是依靠工厂类. 1. ...

  3. 2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被

    2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出"方法 metho ...

  4. Spring容器装饰者模式应用之实现业务类与服务类自由组合的解决方式

    在不论什么一个项目中都不可或缺的存在两种bean,一种是实现系统核心功能的bean,我们称之为业务类,第二种是与系统核心业务无关但同一时候又提供十分重要服务bean,我们称之为服务类.业务类的bean ...

  5. 【电信增值业务学习笔记】8 3G视频类增值业务

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.视频类相关标准: 基于ISDN网络的H.320系统 基于IP网的H.323系统 基于PSTN网络的H.324 ...

  6. 线程池方式调用spring mvc的业务类的简单实例

    开发环境:springmvc 业务场景: 大字段附件从数据表中迁移到 另外一张表保存文件路径并存储文件到磁盘 的小程序. 实现目标:通过url 直接调用一次运行即可成功: http:ip:port/w ...

  7. 使用DLL封装窗体和业务类

    软件开发的一种架构思路: 使用DLL封装一组窗体和业务类,真正的模块化编程,方便工作组进行开发的分工与合作. 打个比方: 经常开发进销存软件,那么我们把"入库单.返厂单.盘点单...&quo ...

  8. Quartz业务类无法注入Spring对象问题

    tags: 解决错误, titile: Quartz业务类无法注入Spring对象问题 Quartz业务类无法注入Spring对象问题 在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那 ...

  9. java 用面向接口编程的方式开发打印机_Java“打印机”模型理解面向接口编程。实现接口定义类,接口实现类,核心“业务”类分离...

    接口定义类 IinkBox.java package printerDemo.iface; public interface IInkBox { public String getColor(); } ...

  10. 组织人事类主数据业务梳理以及流程编排

    主数据是描述企业核心业务实体的数据,是企业核心业务的主要构成部分,各个订单.合同以及业务的主体,在企业内部被重复.共享应用的数据,主数据跨越企业各个业务部门以及各类业务系统,是应用系统之间数据交互的基 ...

最新文章

  1. 我写的代码,又被CTO骂了......
  2. 复旦大学邱锡鹏教授等「Transformers全面综述」论文
  3. 异构智能吴韧:物联网是“伪命题”?智联网才是未来
  4. zeros--创建零矩阵
  5. 搜索推荐广告中的Position Bias:美团DPIN
  6. Oracle基础视频教程
  7. 金蝶生成凭证模板_金蝶k3凭证生成
  8. CPU的使用率和负载的区别
  9. 微软部分专卖店地址选定 今秋开张
  10. [CTFHub] Web RCE Write ups
  11. 战争英雄、同性恋和计算机科学的奠基人
  12. 怎样编配吉他独奏曲(上)
  13. 3.Regression(二)
  14. 产品经理知识体系专题
  15. WinForm实现Loading等待界面
  16. 2.4 PIMPLE算法 | 2.5 附加显式力的压力速度耦合(OpenFOAM理论笔记系列)
  17. python itchat实现微信自动回复
  18. 【悟空云课堂】第三十九期:违反信任边界(CWE-501: Trust Boundary Violation)
  19. 【图像增强】基于gabor滤波器实现指纹增强含Matlab源码
  20. Java 实现图片裁剪(附代码) | Java工具类

热门文章

  1. AES加密SharePreference数据
  2. 关于URL大小写问题
  3. 性能调试工具——oprofile
  4. 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果...
  5. ASP.NET2.0的控件状态和视图状态探讨
  6. 提升效率小工具,我用30分钟就干完一天的活
  7. R语言实战:个人贷款违约预测模型
  8. 那些小城里的分析大师们为什么发不了财?
  9. 2.性能测试类型或方法
  10. 玻尿酸市场价格有很多,你是赚了还是亏了?