2013-05-14 3 views
1

데이터베이스 (Oracle 또는 SQLite)에 연결된 Java에서 응용 프로그램을 개발 중입니다. 데이터베이스에는 계약서가 저장됩니다. 계약서에는 필드 access_date이 있습니다. 그리고이 필드를 매일 한 번 확인하고 어느 날 access_date이 현재 날짜와 같으면 계약을 유효하지 않은 것으로 표시합니다. 어떻게 구현할 수 있습니까? PHP에서 내가 아는 한 이러한 작업을위한 cron 작업이 있지만 java 또는 java ee는 무엇입니까? 어떻게해야합니까? 미리 감사드립니다!매일 데이터베이스 필드를 확인하려면 어떻게합니까?

+0

Cron은 어떤 식 으로든 PHP와 관련이 없습니다. 주기적으로 작업을 실행하는 스케줄러 일뿐입니다. 모든 언어로 작성된 응용 프로그램/스크립트를 실행하는 데 사용할 수 있습니다. – a1ex07

+0

@ a1ex07 그런 다음 cron에 대한 정보가있는 링크를 제공해 주실 수 있습니까? 개념을 이해할 수 없기 때문입니다. – MainstreamDeveloper00

+0

http://stackoverflow.com/questions/4816889/running-a-scheduled-task-written-in-java-on-a-linux-server를 확인하십시오. 대답은 crontab 매뉴얼에 대한 링크가 있습니다. – a1ex07

답변

2
다음과 같은 두 가지 방법으로이 작업을 수행 할 수 있습니다

:

  1. 당신은 특정 시간에 (당신의 경우 자바 프로그램을 호출하는 크론를 사용할 수 있습니다, 하나 매일).
  2. Java 프로그램이 서비스/데몬 (항상 백그라운드에 있어야 함)으로 실행되도록 설계된 경우 Quartz Scheduler과 같은 작업 스케줄러를 사용하여 특정 시간에 특정 검사 기능을 호출 할 수 있습니다.
  3. 2의 확장자로 ScheduledExecutorService을 사용할 수 있습니다.
0

대신 계약이 유효한 것으로하고, SYSDATE에 대해 매일 그것을 확인할 필요하지 않는 속성을 저장, 나는 만료 된 계약을 찾는 등 "ACCESS_DATE < TRUNC (SYSDATE)"로 술어를 사용 것 인 같은 식 :

case when access_date < trunc(sysdate) then 'N' else 'Y' end 

...는 계약이 활성인지의 여부를 표시한다.

+0

이 술어를 데이터베이스에 저장하는 방법과이 표현식을 사용하는 방법을 설명해 주시겠습니까? 매번 데이터베이스에 쿼리를해야합니까? – MainstreamDeveloper00

+0

가장 좋은 방법은 표현식을 추가 열로 포함하는 테이블에 대한 뷰를 작성하고 쿼리하는 것입니다. –

관련 문제