- 浏览: 763790 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (573)
- Java基础 (76)
- C++基础 (5)
- hibernate (5)
- struts (4)
- spring (1)
- webservice (7)
- AjaX基础 (0)
- JS脚本 (53)
- 正则表达式 (5)
- html脚本 (30)
- 数据库基础 (54)
- 工作相关 (49)
- 其他 (30)
- Linux (9)
- web服务器 (17)
- JSP (13)
- eclipse (6)
- 面试题相关 (20)
- XML (3)
- Apache common (2)
- 生活 (35)
- VMware (1)
- log4j (9)
- BeanUtils (2)
- 设计模式 (3)
- UML (1)
- UNIX (1)
- ibats (5)
- GT-Grid (17)
- ABAP学习 (17)
- ABAP (35)
- ABAP--ALV (11)
- ABAP--WEBDIMPRO (0)
- abap-sample (1)
- BEMS (2)
- flex (33)
- GIS技术 (3)
最新评论
public class GpsAnalyseSchedule {
private Timer timer = null;
public GpsAnalyseSchedule() {
long delay = FormatDate.getDateDiff("19:04:10");
timer = new Timer(true);
timer.schedule(new GpsAnalyse(), delay, 1000 * 60 * 60 * 24);
}
class GpsAnalyse extends TimerTask {
public void run() {
ServerConfig.logger.info("开始启动GPS运营统计定时器!");
Database db = null;
try {
db = new Database();
CallableStatement proc = null;
proc = db.getConn().prepareCall("{ call njtjgps.proc_gps_analyse(?) }");
proc.setDate(1, new java.sql.Date(Calendar.getInstance().getTime().getTime()));
proc.execute();
} catch (Exception e) {
e.printStackTrace();
ServerConfig.logger.info(e.getStackTrace());
} finally {
db.cleanup();
}
ServerConfig.logger.info("GPS运营统计定时器启动完毕!");
}
}
}
只需要new GpsAnalyseSchedule ()就完成了定时器调用存储过程。
我的存储过程是用来统计某一日的情况的,如下:
CREATE OR REPLACE PROCEDURE proc_gps_analyse(v_today date)
as
tmp_count number;
tmp_natural_count number;
tmp_excepl_count number;
tmp_exigent number;
tmp_over_speed number;
tmp_ent number;
cursor my_cursor is
select count(lic_nob),count(lic_noa),count(lic_nob)-count(lic_noa),nvl(sum(sign(exigent)),0),nvl(sum(sign(over_speed)),0),
ent_id
from
(select A.lic_no lic_noa,A.exigent exigent,A.over_speed over_speed ,B.lic_no lic_nob,B.ent_id ent_id
from
(select LIC_NO ,
sum(exigent) exigent,
sum(over_speed) over_speed
from T_VEHICLE_HISTORY
where pos_state='1' and to_char(SERVER_TIME,'yyyy-mm-dd')=to_char(v_today,'yyyy-mm-dd')
group by lic_no) A RIGHT JOIN (
SELECT lic_no,ent_id FROM t_vehicle_info WHERE ent_id<>0 AND to_char(create_date,'yyyy-mm-dd')<to_char(v_today,'yyyy-mm-dd')) B
ON A.lic_no=B.lic_no)
group by ent_id;
begin
open my_cursor;
loop
fetch my_cursor into tmp_count,tmp_natural_count ,tmp_excepl_count,tmp_exigent,tmp_over_speed,tmp_ent;
exit when my_cursor%notfound;
insert into T_GPS_ANALYSE(ANLS_ID,VEHICLE_COUNT,ENT_ID,natural_count,excepl_count,exigent_count,over_speed_count,total_date)
values(seq_anls.nextval,tmp_count,tmp_ent,tmp_natural_count,tmp_excepl_count,tmp_exigent,tmp_over_speed,v_today);
end loop;
close my_cursor;
commit;
exception
when others then
rollback;
end proc_gps_analyse;
/
private Timer timer = null;
public GpsAnalyseSchedule() {
long delay = FormatDate.getDateDiff("19:04:10");
timer = new Timer(true);
timer.schedule(new GpsAnalyse(), delay, 1000 * 60 * 60 * 24);
}
class GpsAnalyse extends TimerTask {
public void run() {
ServerConfig.logger.info("开始启动GPS运营统计定时器!");
Database db = null;
try {
db = new Database();
CallableStatement proc = null;
proc = db.getConn().prepareCall("{ call njtjgps.proc_gps_analyse(?) }");
proc.setDate(1, new java.sql.Date(Calendar.getInstance().getTime().getTime()));
proc.execute();
} catch (Exception e) {
e.printStackTrace();
ServerConfig.logger.info(e.getStackTrace());
} finally {
db.cleanup();
}
ServerConfig.logger.info("GPS运营统计定时器启动完毕!");
}
}
}
只需要new GpsAnalyseSchedule ()就完成了定时器调用存储过程。
我的存储过程是用来统计某一日的情况的,如下:
CREATE OR REPLACE PROCEDURE proc_gps_analyse(v_today date)
as
tmp_count number;
tmp_natural_count number;
tmp_excepl_count number;
tmp_exigent number;
tmp_over_speed number;
tmp_ent number;
cursor my_cursor is
select count(lic_nob),count(lic_noa),count(lic_nob)-count(lic_noa),nvl(sum(sign(exigent)),0),nvl(sum(sign(over_speed)),0),
ent_id
from
(select A.lic_no lic_noa,A.exigent exigent,A.over_speed over_speed ,B.lic_no lic_nob,B.ent_id ent_id
from
(select LIC_NO ,
sum(exigent) exigent,
sum(over_speed) over_speed
from T_VEHICLE_HISTORY
where pos_state='1' and to_char(SERVER_TIME,'yyyy-mm-dd')=to_char(v_today,'yyyy-mm-dd')
group by lic_no) A RIGHT JOIN (
SELECT lic_no,ent_id FROM t_vehicle_info WHERE ent_id<>0 AND to_char(create_date,'yyyy-mm-dd')<to_char(v_today,'yyyy-mm-dd')) B
ON A.lic_no=B.lic_no)
group by ent_id;
begin
open my_cursor;
loop
fetch my_cursor into tmp_count,tmp_natural_count ,tmp_excepl_count,tmp_exigent,tmp_over_speed,tmp_ent;
exit when my_cursor%notfound;
insert into T_GPS_ANALYSE(ANLS_ID,VEHICLE_COUNT,ENT_ID,natural_count,excepl_count,exigent_count,over_speed_count,total_date)
values(seq_anls.nextval,tmp_count,tmp_ent,tmp_natural_count,tmp_excepl_count,tmp_exigent,tmp_over_speed,v_today);
end loop;
close my_cursor;
commit;
exception
when others then
rollback;
end proc_gps_analyse;
/
发表评论
-
线程的数量控制
2012-06-14 13:34 933在编程中,往往都需要采用线程来提高速度,但线程并不是越多越好。 ... -
Servlet生命周期与工作原理
2012-06-14 13:28 833Servlet生命周期分为三个 ... -
Java中堆和栈的区别
2012-03-09 11:10 731栈与堆都是Java用来在Ram ... -
Collection 和 Map接口及其实现类总结
2012-03-09 11:09 959Collection接口 Collection是 ... -
HTTP状态码
2012-01-30 15:18 1213常见的状态码: HTTP: Status 200 – 服务 ... -
Flex错误码列表
2012-01-30 15:13 1231在 ActionScript 3.0 中,无论是在严谨模式下还 ... -
Java性能优化技巧集锦
2011-12-26 10:04 742一、通用篇 1.1 不用new关键词创建类的实例 1.2 ... -
java Web 项目优化的几个小方法
2011-12-26 10:02 12861.用Hibernate操作数据库时一定要本着用多少取多少的原 ... -
总结几点数据库效率优化方面应该注意的问题
2011-12-26 10:01 8121、 避免使用Hibernate框架 用Hiberna ... -
转载的一篇关于如何优化JAVA代码及提高效率的文章
2011-12-09 16:51 848可供程序利用的资源( ... -
Java获取IP地址:request.getRemoteAddr()警惕
2011-12-08 11:15 1087项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没 ... -
jsp 统计在线人数
2011-12-06 09:23 932首先写个类: import javax.s ... -
Java邮件开发源代码
2010-11-11 07:43 1020Java邮件开发源代码Java邮件开发源代码Java邮件开发源 ... -
Windows下的Mapserver——MS4W安装注意事项
2010-07-29 19:30 24551\MS4W文件夹一定要放在磁盘根目录下; 2,运行apac ... -
Java读取桌面路径的方法
2010-04-20 20:53 1267今天在写程序时需要读取桌面的路径,开始时以为需要使用JNI来 ... -
date 转换
2009-12-18 16:27 662import java.text.ParseException ... -
String indexOf substring
2009-12-18 16:26 1901public class TestString { ... -
Calendar,Date,long(Millis)转换
2009-12-18 16:23 1970//Calendar与Date、long的转换: ... -
String split()
2009-12-18 16:15 1108String split() 如字符串:http://www. ... -
String编码转换
2009-12-17 12:09 3240String newStr = new String(oldS ...
相关推荐
oracle定时器调用存储过程
Oracle定时执行存储过程 Oracle定时执行存储过程
3.JAVA 定时器及SqlServer和Oracle封装链接数据库,增/删/改/查可直接使用(提供JAR) 4.从JDK的安装到最后定时器发布成功,都有非常详细的操作说明及截图,新手按照操作说明及截图,很快可以掌握原理,在此基础上...
JAVA定时器,只要服务开启,就能指定某些代码在某个时刻执行,例如:监狱里罪犯的余刑天数,每天都要减少,就可以设置一个定时器在每天的23:59:59来执行减少余刑天数的天。
JAVA定时器JAVA定时器.pdf
java Timer定时器实例 Spring实例.doc java Timer定时器实例 Spring实例.doc
java_Timer定时器实例_Spring实例
实例助解java定时器设置及停止的方法
java定时器
java 定时器(Timer) java 定时器(Timer) java 定时器(Timer)
Java定时器的使用 Java程序 Java写的一个定时器
java定时器,import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; 规定每天几点执行一次
讲解Java定时器开发
Java后台定时器代码Java后台定时器代码Java后台定时器代码Java后台定时器代码Java后台定时器代码
在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。 对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
Java定时器简例
dgdgdgddddddddddddddddddddddd
java web 定时器例子
java定时器 spring定时器:包括spring定时器的详细配置以及说明 包含所需的jar包