一 可以用数据库中的临时表实现
A temporary table:
•Provides storage of data that isautomatically cleaned up when the session or transaction ends
•Provides private storage of data for eachsession
•Is available for use to all sessionswithout affecting the private data of each session
ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表临时表只是保存当前会话(session)用到的数据,数据只在事务或会话期间存在。
对于事务类型的临时表, 数据只是在事务期间存在。
对于会话类型的临时表,数据在会话期间存在 。
二 可以通过session来实现
例如:在java ee中可以在一个session对象绑定一个arraylist。
每一个加入购物车的商品对象都可以将其加入arraylist ,在选择结束后,arraylist中的商品对象就是购物车中所选对象。
比较:数据库中的全局临时表会耗费一定的内存空间,前台的session对象可以较快的通过前台代码实现,若出现异常,安全性略微低于全局临时表。