有没有办法实现几条jsp语句的原子化(就是一口气执行完,不中断,呵呵,大侠别见笑)

washy781231 2003-04-06 03:43:22
小弟在用jsp编写程序时需要用到类似以下的操作:
先读取数据库中的某一个整型字段,然后把该值+1或-1后更新该字段(比如对论坛上每个帖子的点击数的记录)。可能要对多个表进行类似工作。我希望读值,+-1,更新,这整个过程一气完成,也就是不会被别的客户请求中断,以免造成数据的失真(就像共享,冲突)。于是就想请问各位大侠有没有什么语句可以实现几个句子的原子化?我的意思是,我是在jsp页中写这些语句,不用线程,有没有什么像“锁”一样的语句将我想要的几句包起来?唉,小弟的水平有限,不知道说清楚没有,各位见谅。
...全文
99 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AngusZhang 2003-04-07
  • 打赏
  • 举报
回复
Connection conn = ds.getConnection();
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
int nRow[] = null;
int nRow[0] = stmt.executeUpdate("insert into A xxxxxxx");
int nRow[1] = stmt.executeUpdate(("insert into B xxxxxxx");
.
.
.
for(int i=0;i<nRow.length;i++){
if(nRow[i]==0){
stmt.close();
conn.rollback();
}
}else{
stmt.close();
conn.commit();
}
aleccheung 2003-04-07
  • 打赏
  • 举报
回复
记得jdbc里面有个回滚的方法,比如交易失败就所有数据回滚,
想不起来了。
但是我觉得楼主想得有点多了。
ajiao 2003-04-07
  • 打赏
  • 举报
回复
jsp程序本就是在服务器端处理的阿
cgsun 2003-04-06
  • 打赏
  • 举报
回复
存储过程
你可以到SQL里去问问。
AllError 2003-04-06
  • 打赏
  • 举报
回复
存储过程
washy781231 2003-04-06
  • 打赏
  • 举报
回复
哦,就是在服务端处理的。怎么办?请大侠指教。
ajiao 2003-04-06
  • 打赏
  • 举报
回复
第一种方法 你可以通过调用存储过程,一次性执行这些sql语句

第二种方法 调用Statement对象的addBatch方法
例如: stmt.addBatch("insert into A xxxxxxx");
stmt.addBatch("insert into B xxxxxxx");
stmt.addBatch("insert into C xxxxxxx");
然后调用executeBach()
int[] counts=stmt.executeBatch();
最后编历数组counts,查看每个元素是否1
(每个counts数组元素对应上述三条执行语句影响纪录的条数,此例应为1)
如果有一个不为1的,你可以认为插入出错,调用connection对象的rollback()回滚
整个批处理修改

具体的过程参考api document







p9 2003-04-06
  • 打赏
  • 举报
回复
可能性不大,多个jsp页面在同时运行这段程序是如何同步。
当然你可以在服务段设一个同步令牌,页面操作前需要获取这个令牌。
但这样效率太低也不安全。
这种东西不能放在jsp页面中,最好放在服务端处理
内容概要:本文档针对2026年华为杯研究生数学建模竞赛C题“服务于脑机接口与精神性疾病诊断的脑电图计算模型”,系统性地提供了从解题思路、算法实现到论文撰写的全流程支持资源。内容聚焦脑电信号(EEG)的数据预处理、特征提取、分类建模与结果分析,融合机器学习与深度学习技术(如SVM、CNN、LSTM、Transformer等),构建高精度的脑电识别模型,服务于抑郁症、癫痫等精神疾病的智能辅助诊断及脑机接口的信息解析。文档还整合了MATLAB与Python代码资源、模型实现案例及多领域科研技术支持体系,涵盖智能优化、信号处理、路径规划、通信优化等方向,并提供网盘资料下载与在线目录导航,强化理论与实践的深度融合; 适合人群:参加全国研究生数学建模竞赛的硕士、博士研究生,从事脑电信号处理、智能医学、生物信息学研究的科研人员,以及具备一定编程与数据分析基础、致力于人工智能在医疗健康领域应用的高校学生与青年学者; 使用场景及目标:① 快速掌握华为杯C题的技术路线与建模范式,高效完成竞赛备赛;② 构建面向临床辅助诊断的脑电计算模型,推动脑机接口与精神疾病识别的算法创新;③ 借助提供的开源代码与建模框架,开展科研复现、算法优化与学术论文写作; 阅读建议:建议结合文档提供的在线资源目录与百度网盘资料系统学习,优先精读脑电信号去噪、特征工程构建与深度学习模型选型部分,动手运行并调试代码,通过对比不同模型性能深化对算法适用性与工程实现细节的理解,同时关注跨学科方法的融合应用。

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧