2011-07-04 5 views
1

일 때 Java 메소드를 호출하는 방법 mysql 데이터베이스에 레코드가 삽입 될 때 java 메소드 또는 struts 액션 클래스를 호출 할 수 있는지 알려주십시오. Actuall 내 문제는 2 데이터베이스 둘 다 mysql 데이터베이스 즉 db1과 db2가 서로 다른 두 위치에서 실행됩니다. 그들 사이의 통신이 필요합니다. 레코드가 동시에 db1의 X 테이블에 삽입되면 데이터는 DB2의 Y 테이블에 삽입되어야합니다 DB2에 삽입 된 일부 데이터는 db1의 Z 테이블에 삽입되어야합니다.mysql 데이터베이스에 삽입 된 레코드가

실제 위치는 내 프로젝트는 하나 개의 임베디드 버튼이 있습니다 환자 하나의 치료 즐긴다 그룹에 대한 환자 치료 프로젝트 가 각각의 모든 환자에 대한
입니다. 환자 세부 정보와 임베디드 버튼 및 해당 치료 담당자 간의 매핑은 db2 데이터베이스에 있습니다. 환자가 삽입 버튼을 눌렀을 때 embeded 정보가 db1 에 삽입되고 inorder가 환자를 돌보는 사람에게 모바일 메시지를 보내도록 요청합니다. 환자 및 보호자 매핑 DB2에서와 같이 DB2로부터 데이터 DB1에 삽입 임베디드 정보 닫 따라

businesslogic VC++

businesslogic가

그래서 자바 iswritten DB2 통신에 iswritten DB1 통신 I db1과 DB2

기술은

자바를 사용하는 1.2

데이터베이스 스트럿 :

+0

스트럿츠 1 또는 스트럿츠 2? –

+0

짧은 대답은 예입니다. 오랫동안 비즈니스 로직을 구조화 한 한. 삽입 명령의 출처는 어디입니까? – GordyD

+1

레코드가 앱 외부의 DB에 직접 삽입되는 것을 의미합니까? 그럼 내가 생각하는 유일한 방법은 정기적으로 데이터베이스를 쿼리하는 것입니다. –

답변

2

mysql을 나는 dB의 삽입에서 적극적으로 자바 코드를 실행할 수 있습니다 그것을 생각하지 않는다 있습니다. 우리가 할 것은 반대입니다 : 삽입 우리가 전용 테이블에 ROWID를 작성 발생했을 때

  • 우리는 새 항목

위한 자바 정기적으로 실행 작업 및 확인이 테이블이 웹 컨텍스트에서 그런 작업을해서는 안되므로이 컨텍스트에서 스트럿을 잊어 버리십시오!

0

Java 프로세스가 테이블을 정기적으로 쿼리하여 새 레코드를 확인할 수있게 할 수 있습니다. 더 나은 솔루션은 데이터베이스 트리거가 필요한 비즈니스 로직을 수행하도록하는 것입니다 (직접 struts 액션을 호출 할 수는 없지만). 행을 삽입 한 후 수행해야하는 비즈니스 로직에 대한 세부 정보를 제공 할 수 있다면 훨씬 더 깨끗한 디자인을 제공 할 수 있습니다.

0

이 (가 SomeAction action = new SomeAction()처럼 인스턴스화 할 수있는 간단한 POJO 클래스의로) 나는 는 몇 가지 이유를 권하고 싶지 않다 다른 Struts 액션을 사용할 수 비록 :

  • 당신은 여러 가지를 통과해야합니다 Struts는 작업을 위해 작동하도록 구성합니다.
  • ActionForward 응답을 처리하십시오.

제 생각에는 동일한 데이터를 2 개의 데이터베이스에 전달하거나 데이터를 2 개의 데이터베이스에 기록해야한다는 것을 이해하는 전략을 가지고 비즈니스 논리를 구현하는 것이 좋습니다.

0

Here's an extension for MySQL (UDF). MySQL의 다른 프로그램을 실행할 수 있습니다.

사용법은 비교적 간단해야합니다. 응용 프로그램의 기능을 잘 모르지만 프로그램을 호출하고 db 통신을 설정하는 데 필요한 특정 매개 변수를 전달하는 트리거를 만들 수 있습니다.

관련 문제