2014-01-30 1 views
1

나는 프로세스에 영향을주는 몇 가지 요소를 간과했을 지 모르겠다. 그것은 여기에 내 첫 게시물이며 최고의 답변을위한 기초로 최고의 질문을 받고 나를 돕기위한 초기 처방전을 읽었습니다. 나는루프 (Arraylist)에서 문자열을 만들고 mysql 커맨드 라인에 몇 가지 개별 부호를 붙인다.

이 사건은 내가 생성 된 것입니다 (추가 질문에 코멘트를 확인하십시오, 그렇지 않으면) 당신이 이해됩니다 홉 내가 여러 이름, 수량 및 날짜 모이는 ArrayList

ArrayList<String> liste = new ArrayList<String>(); 

:

if(shepherd == 0) { 
} else if(shepherd <= 0) { 
    System.out.println(shepherd);    
    String s = "('shepherd'," + "'" + shepherd + "'," +"'" + ft.format(date) + "'" + ")"; 
    liste.add(s); 
} 
을 다음과 같이

나는 shepherd을 정의했습니다 :

double shepherd = 0; 

다음으로이 항목을 MySql 데이터베이스에 추가하고 싶습니다.

I은 ​​쿼리를 생성하고, I가 올바른 형식인지 확인할 수 있도록하여 출력 :

System.out.println("INSERT INTO kennel VALUES"); 

for(int i = 0; i < liste.size(); i++) { 
    System.out.println(liste.get(i)); 

    if(i != liste.size()-1) { 
     System.out.println(","); 
    } 
} 

이 적절한 구문 올바른 명령을 나타내고 있지만로만 출력의 이 시점에서 콘솔.

일부 Jsch 또는 Ganymed를 통해이를 보내야합니다. String와 같을 가능성이 큽니다. 그래서 내가 어떻게 모든 다른 부분, 복식, 문자열, 루프를 걸릴 수 궁금하네요 문자열을 구축, 내가 콘솔에 인쇄 된 줄과 동일합니다.

String command = (mysql -e "use kennel;insert into department3 values ('shepherd','1','2013-03-04');"; 

나는 내가 "(' 몇 가지 문제를 겪고 있다고 생각 :

나는 그것이 같을 것이다 감지.

나는 그 문제가 무엇인지 분명히 알기를 바랍니다. 미리 감사드립니다. 감사합니다

+1

Welcome to StackOverflow Mikkel. 'StringBuilder' 인스턴스를 사용하여 타겟'String'을 생성 할 수 있습니다. 실행할 문자열을 MySql로 보내려면 어떻게 계획합니까? – crush

+0

mysql -e 문을 실행하는 대신 JDBC를 사용하는 것을 고려하십시오. – gexicide

답변

0

문자열을 따옴표로 묶어야합니다. 이렇게하면 문자열 내의 따옴표가 방해되므로 이스케이프 처리해야합니다. 문자 앞에 백 슬래시를 삽입하여이 작업을 수행 할 수 있습니다. :)

String command = "(mysql -e \"use kennel;insert into department3 values ('shepherd','1','2013-03-04');\""; 
관련 문제