2013-10-01 2 views
2

내 요구 사항에서 파일 (엑셀)에서 데이터를 받고 데이터베이스에 삽입하고 있습니다. 그러나 테이블 이름을 일부 비즈니스 논리를 기반으로 파일을 처리하는 동안지고있다. 테이블이 존재하는지 여부를 확인한 다음, 테이블을 갱신하고 데이터를 작성하고 삽입하십시오. 제공되는 뮬 스튜디오를 사용하는 사용자 정의 Java 코드없이이 요구 사항을 구현할 수 있습니까? 미리 감사드립니다. 뮬 (mule) 흐름의 동적 테이블 생성

답변

1

표준 구성 요소로는 가능하지 않다고 생각합니다.

3 개의 xls로 매핑 할 수있는 3 개의 테이블이 있다고 가정하면 3 개의 datamappers를 정적으로 정의하고 선택 구성 요소의 특정 로직을 호출 할 수 있습니다.

java.sql.DatabaseMetaData dbm = con.getMetaData(); 
      rs = dbm.getTables(null, null, "TableName", null); 
      if (rs.next()) { 
       System.out.println("TableName found"); 
      }else{ 
       System.out.println("TableName NOT found"); 
} 
0

는 다른 방법으로 당신은 또한 데이터베이스가 존재하는지 확인하기 위해 그루비 스크립트에서 다음 쿼리를 사용할 수 있으며 경우를 만듭니다 그것은 예를 들어, 당신은 사용할 수있는 테이블이 그루비/자바에 존재하는지 확인하는 매우 간단합니다 하지 : -

if not exists (select * from sysobjects where name='YourTableName' and xtype='U')create table YourTableName(ID int NOT NULL, NAME varchar(50) NULL,AGE int NULL,DESIGNATION varchar(50) NULL) 

그러나 예,이 if not exists 쿼리가 좌초 뮬 데이터베이스 구성 요소에 의해하고 그루비 구성 요소를 사용할 수있는 경우에는 지원되지 않습니다.
이것은 간단한 쿼리이므로 필요에 따라 수정할 수 있으며 끝내지 않으면 테이블을 만드는 데 매우 유용합니다. 여기에서 create table 명령을 한 줄에 직접 사용할 수 있습니다