2015-01-13 7 views
0

안녕하세요 프로그램을 실행하려고하는데 정말 이상한 결과가 나옵니다. 이 프로그램은 단일 배열 일 때 작동하지만 다차원으로 만들면 오류가 발생합니다. 내 출력은다차원 배열의 messageFormt() 오류

public static void main(String[] args) throws IOException { 

      MessageFormat messageFormat = new MessageFormat("insert into {0} values (''{1}'', ''{2}'', ''{3}'', ''{4}'')"); 
      Object[][] data = { {"000", "111", "222","333","444","555"}, 
           {"000", "123", "234","345","456","567"} }; 

      System.out.println(messageFormat.format(data)); 
} 

도와주세요 : 당신이, 당신은 객체의 배열을 전달하는에 data를 통과하면

run: 
insert into [Ljava.lang.Object;@2a134eca values ('[Ljava.lang.Object;@52934c3b', '{2}', '{3}', {4}) 
BUILD SUCCESSFUL (total time: 0 seconds) 

답변

1

MessageFormat 제공된 형식은 1 차원 배열 인쇄에 적합합니다. 그러나 2 차원 어레이를 즉시 인쇄 할 수는 없습니다.

당신은 당신의 2-D 배열 data 반복해야합니다

for(Object[] array : data) { 
    System.out.println(messageFormat.format(array)); 
} 
0

(또한 객체의 배열 될 일이된다). 그래서 첫 번째 data[0]이며, 두 번째는 크기 6의 Object[]

것으로 보인다 둘 data[1]이며,이 해결하려면 :

messageFormat.format(data[0]); 

주의의 단어, 당신이 될 수 있다는 것을 이것을 SQL 삽입 문에 사용합니다. PreparedStatement을 대신 사용하는 것이 좋습니다.이 방법은 오류가 발생하기 쉽고 매우주의하지 않으면 SQL 주입 공격으로 이어집니다!

+0

-Todd는 당신의 도움을 주셔서 감사합니다, 나는 된 PreparedStatement로 살펴 보겠습니다 – dc4teg