首页 > 技术文章 > 事务保证

user-for-once 2019-03-21 11:07 原文

旧项目升级,部分保留了旧项目的Oracle 存储过程代码(要和Oracle CRM交互).

在这个交互上,就需要使用一个CRM系统的账号,甲方的想法,是不同的用户都应使用自己的账号.

但从前的旧项目所有逻辑基本都在存储过程中,目前大部分逻辑都在java中了,如何把账号信息传递到Oracle是个问题(不想大量修改存储过程接口).

旧项目将用户信息(userName,ID,Locale)作为Session级别环境变量设在Session中,这个Session和HttpSession貌似做了一一对应(不确定,但肯定有这么一个对应).

升级后用的是连接池,Oracle DB Session对应到每一个jdbc connection.

还是重用了旧代码的Session环境变量,给所有相关操作放入事务(Spring 事务管理可以保证多次SQL操作使用同一个jdbc connection,这是废话),然后在每个事务中增加Set环境变量的操作.

找不到合适切点,没有使用AOP,但问题还是解决了.

记一下吧.

推荐阅读