社区
Java EE
帖子详情
关于一个线程的问题(急)
yangdu328
2009-06-07 10:25:11
我有一个线程定时扫描一个表,如果发现表中有记录,就将所有的内容发送到对应的手机上,然后删除该记录并在另一个表中做日志记录,现在有一个奇怪的问题,
如果进行删除等业务操作,则每次只发送一条
,其他的得等线程sleep结束后再发送一条,以此类推,直到全部发送完;
如果不进行删除等业务操作,则每次都能扫描表中所有的数据
,请问是什么原因?(jdk1.5,Oracle 9i)
...全文
39
6
打赏
收藏
关于一个线程的问题(急)
我有一个线程定时扫描一个表,如果发现表中有记录,就将所有的内容发送到对应的手机上,然后删除该记录并在另一个表中做日志记录,现在有一个奇怪的问题,如果进行删除等业务操作,则每次只发送一条,其他的得等线程sleep结束后再发送一条,以此类推,直到全部发送完;如果不进行删除等业务操作,则每次都能扫描表中所有的数据,请问是什么原因?(jdk1.5,Oracle 9i)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chinaboy2005
2009-06-07
打赏
举报
回复
贴出你的代码啊
shibenjie
2009-06-07
打赏
举报
回复
使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。
而楼主是用Statement进行了两次操作,一次查询,一次删除。
建议一个Statement进行一次操作,因为进行一次操作后JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭
JDBC3.0中,我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数,这个Statement的创建方式也就是,我所说的Statement的第三种创建方式。如下:
Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)
ResultSet rs = st.excuteQuery(sqlStr);
前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数:
resultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:
ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库。
ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭。
世宝宝
2009-06-07
打赏
举报
回复
看不太明白
xyz1982510
2009-06-07
打赏
举报
回复
很简单的问题,debug被。一下就跟中出来了。这么多的操作,要要写在一个事务里边去做。
zoutuo
2009-06-07
打赏
举报
回复
举个小例子。应该是你的哪部分逻辑写错了,导致这个结果。
yangkangoo12
2009-06-07
打赏
举报
回复
你是不是查询操作和删除操作在同一个connection里面?
当生成 ResultSet 对象的 Statement 对象关闭、重新执行或用来从多个结果的序列检索下一个结果时,ResultSet 对象会自动关闭。
我猜你的程序应该是这样写的吧,先去查表中的记录 然后
while(rs.next){
//先将内容发送到手机
......
//删除该记录并在另一个表中做日志记录
......
}
当你执行删除操作的时候你查询的ResultSet 对象被自动关闭了,然后rs.next就会等于false 所以每次只发送了一条 然后此线程结束sleep直到再次启动继续发送一条,以此类推。
建议你先把查出的结果放在list里面 然后遍历list进行发送和删除操作
多
线程
(一):创建
线程
和
线程
的常用方法
了解并发编程:实际工作中很少写多
线程
的代码,这部分代码一般都被人封装起来了,在业务中使用多
线程
的机会也不是很多(看具体项目),但是作为
一个
高级程序员如果不会多
线程
是说不过去的。 二:进程与
线程
...
python多
线程
死循环_python编写的多
线程
程序,要求死循环执行多
线程
创建的
线程
,但是程序执行到一定时间后就在其中
一个
线程
执...
万
急
呀,谢谢#Thr...python编写的
一个
多
线程
程序,要求死循环无限制的执行多
线程
创建的
线程
,但是程序执行到一定时间后就在其中
一个
线程
中执行永远也出不来了,请问大家
问题
出在哪儿呢?万
急
呀,谢谢# Thread class ...
Java多
线程
交叉打印ABABAB,
一个
线程
打印A,
一个
线程
打印B
在Java中想要完成此功能有好几种方法都可以实现,这篇文章主要使用 ...首先需要两个
线程
,
一个
打印字符 A ,另
一个
打印字符 B ,那么如何让他们互相协作呢?此时,我需要
一个
boolean 类型的变量 flag ,这个变量...
python代码实现
一个
多
线程
一个
进行要执行任务须要有
线程
(每个进行至少有一条
线程
)
一个
线程
执行完了,
线程
就会自动结束。 b.
线程
特点:
线程
是串行的。 多
线程
(并行)同时执行多个任务 c.多
线程
原理: CPU在空闲时间能够其它事情(所以某种...
C++多
线程
多少个
线程
算多?
程序一启动就创建了60个
线程
,太多了,应该控制一下。...使用
一个
线程
,依次执行100个下载任务; 使用100个
线程
,每个
线程
执行
一个
下载任务; 使用10个
线程
,每个
线程
依次执行10个下载任务。 ...
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章