2013-12-12 5 views
0

After taking help Excel 데이터 값을 올바르게 읽을 수 없기 때문에 다른 문제가 발생했습니다. VARCHAR 열에 대한 셀 따옴표는 Excel 행을 삽입 할 때 손실됩니다. 쿼리를 형성하고 내가 MySQLSyntaxException을 부여하고있는 SQL 문을 실행할 때 예를 들어mysql에 Excel에서 행을 삽입하면 JDBC 예외를 던졌습니다.

, 나는 [1, 아산 2013년 12월 12일]

처럼 그런

을 목록에 행을 읽습니다. insert 문을 사용할 때 어떻게 가져 오지 (또는 가져온 데이터에 작은 따옴표를 추가 할 것인가)? 다음은 내가 쿼리를 형성하기 위해 사용하고있는 코드, 문 준비, 다음의 MySQL/JDBC는 당신을 위해 그것을 처리 할 수 ​​있습니다를 사용에

Statement stmt = null; 
String qry = "insert into "+ fieldValue + " ("; 
for (int i=0; i<sheetColumnNames.size(); i++) { 

    if (i == (sheetColumnNames.size() -1)) { 
     qry += sheetColumnNames.get(i) +")"; 
    } 
    else 
    { 
     qry += sheetColumnNames.get(i) +","; 
    }    } 
qry += " values " ; 
qry += "("; 
// This code is in a Row loop     
for (int i=0; i<rowSet.size(); i++) { 
    if (i == (rowSet.size() -1)) 
    { 
     if ((row.getRowNum()+1)==(sheet.getLastRowNum()+1)) 
     {  
     qry += rowSet.get(i) +")"; 
     } 
     else 
     { 
     qry += rowSet.get(i) +"),"; 
     } 
    } 
    else 
    { 


     qry += rowSet.get(i) +","; 
    }  
} 

답변

1

봐입니다.

현재 데이터베이스는 SQL 삽입에 취약합니다.

EDIT : 또한 Excel 파일에 여러 행이 있다고 가정 할 때 성능을 개선해야합니다 (눈에 잘 띄면 잘 모르겠 음).

관련 문제