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

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服务器更新应用来满足需求的变化。

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

关注技术文章飞秋:http://www.freeeim.com/,24小时专业转载。

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

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

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

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

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

  3. 【飞秋】ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    最近闲了,花点几天时间将项目中常用的一些类.方法做了一下总结,希望对大家有用. 实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回fa ...

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

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

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

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

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

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

  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(); } ...

最新文章

  1. Apache和Tomcat的区别是什么?
  2. 织梦php首页老是自动恢复,dede首页网址自动加上index.html问题解决方法
  3. 64位linux下was宕机,was7经常自动宕机,前方告急,工程师面临崩溃.小弟跪上
  4. 全景图拍摄_全景效果图制作软件如何选择?全景图拍摄有哪些步骤?
  5. 第五季2:STA模式USB-WIFI网卡移植与测试
  6. LeetCode 371. 两整数之和(位运算加法)
  7. Leetcode--1004. 最大连续1的个数Ⅲ
  8. 广州数控车床M代码指令讲解
  9. crack密码验证破解
  10. centos7 安装sogou输入法
  11. mac桌面与屏膜保护程序卡死完美解决方法
  12. 电视制式以及伴音载频制式详解
  13. 微信小程序实践——实验4高校新闻网
  14. 原码、反码、补码和真值
  15. Java swing 界面开发 - 登录界面- 2021-11-10
  16. php文章相似度计算,PHP相似度算法
  17. 2021-08-29 UML笔记
  18. 关于‘Power Designer’安装过程详解
  19. 使用ResNet18实现CIFAR10数据集的训练
  20. Arouter传object

热门文章

  1. javascript中encodeURL对象、Boolean对象、Function对象、globalThis对象、Infinity对象、isFinite对象、isNaN对象、JSON对象
  2. 最优化学习笔记(十五)——拟牛顿法(1)
  3. 10篇产品大V精华文章,你值得一读
  4. 互联网日报 | 爱奇艺会员宣布11月13日起涨价;淘宝特价版月活用户破7000万;我国成功发射一箭十三星...
  5. LeetCode C语言刷题——day2
  6. 我国地方大数据政策的扩散模式与转移特征研究
  7. 作者:林嘉洺(1992-),男,华南师范大学计算机学院硕士生。
  8. RabbitMq队列 queue
  9. 【程序设计】哨兵控制器
  10. 【项目管理】CMM能力成熟度模型