十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
final Timer machinetimer = new Timer();
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、虚拟主机、营销软件、网站建设、富拉尔基网站维护、网站推广。
machinetimer.schedule(new TimerTask() {
@Override
public void run() {
//定时执行的方法
XXXX();
}
}, 1000, 1000);
第一个 1000 代表系统运行后,这个定时任务多久会执行。
第二个 1000 代表每次执行间隔时间
如果有不懂的可以再来问我
触发器顾名思意就是在某个动作执行时自动触发执行的,不用调用,比如你是在add和delete数据时加触发器,只要你定义的对,数据库在向你指定的那张表add和delete数据时,该触发器就会自动触发
首先将你的java代码放在数据库里:例如
create or replace and compile java source named TestClass as
public class TestClass
{
public static String getName(String name) {
String name = "xoxo";
return name " with TTTT";
}
}
然后在触发器中调用:
create or replace trigger TRI_TEST before delete or update or insert on TABLENAME for each row
declare name varchar2(20);
begin
if inserting then
FUNCTION getName( who VARCHAR2 ) RETURN VARCHAR2 IS LANGUAGE JAVA NAME TestClass.getName(java.lang.String) return String';
end if;
end;
推荐使用约束,因为都是相同的作用,没必要增加逻辑复杂度:
alter table 表名 add constaint 约束名 check(年龄18)
alter table 表名 add constaint 约束名 check(性别 in ('男','女'))
触发器代码如下:
create trigger Mytr
on 表名
for insert
as
if update(年龄) and exists(select 1 from inserted where 年龄=18)
begin
print('插入的年龄有小于18岁的')
rollback
end
if update(性别) and exists(select 1 from inserted where 性别 not int ('男','女')
begin
print('插入的性别有非男或女的')
rollback
end
案例: 你想让他几点执行都ok
1.MyJob02
//首先我们需要定义一个任务类,比如为MyJob02 ,
//该类需要继承Job类,然后添加execute(JobExecutionContext context)方法,在
//这个方法中就是我们具体的任务执行的地方。
//由希望由调度程序执行的组件实现的接口
public class MyJob02 implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 执行响应的任务.
System.out.println("HelloJob.execute,"+new Date());
}
2.
public static void main(String[] args) throws Exception {
//SchedulerFactory 是一个接口,用于Scheduler的创建和管理
SchedulerFactory factory = new StdSchedulerFactory();
//从工厂里面拿到一个scheduler实例
//计划表(可能翻译的不太贴切),现在我们有了要做的内容,
//与调度程序交互的主要API
/*
* Scheduler的生命期,从SchedulerFactory创建它时开始,
到Scheduler调用shutdown()方法时结束;Scheduler被创建后,
可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作
(如暂停Trigger)。但是,Scheduler只有在调用start()方法后,
才会真正地触发trigger(即执行job)
*/
Scheduler scheduler = factory.getScheduler();
//具体任务.
//用于定义作业的实例
//JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例。
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
//Trigger(即触发器) - 定义执行给定作业的计划的组件
//TriggerBuilder - 用于定义/构建触发器实例
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("0/1 * * * * ?")).build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}