2011-05-14 5 views
5

안녕하세요. 그래서 나는 테이블로서 자바 프로그램의 sqlite DB에 삽입하고 싶은 CSV 파일들의 모음을 가지고있다. 나는 주위에 인터넷 검색하고 그래서뿐만 아니라, 검색하지만 이러한 csv 파일을 sqlite DB에 삽입하는 방법에 대한 자습서를 찾을 수 없습니다. 이 sqlite 래퍼를 사용하고 있습니다 : Zentus SQLiteJDBC..csvs를 Java의 SQLite DB에 삽입하십시오.

 
1,John,Doe,5.0 
2,Jane,Smith,5.0 

가 어떻게 테이블을 만들고 그것으로이 값을 삽입 할 수 :

그래서 내가 그 안에 다음과 csv 파일이 있다고 가정하자?

누구나 올바른 방향으로 나를 가리킬 수 있습니까? 고맙습니다!

업데이트 : 확인.이 가이드는 http://www.sqlite.org/cvstrac/wiki?p=ImportingFiles이지만 구문이 약간 혼란 스럽습니다. 특히 :

나는 이것이 무엇을하고 있는지 이해
sqlite> create table test (id integer, datatype_id integer, level integer, meaning text);  
sqlite> .separator ","  
sqlite> .import no_yes.csv test 

, 그것은 구분 쉼표 될 것이며, 테이블 테스트로 파일 no_yes.csv을 가져 말한다.

Statement stat = conn.createStatement(); 
stat.executeUpdate("drop table if exists test;"); 
stat.executeUpdate("create table test (id, name, value);"); 

나는 구분선을 나타 내기 위해이 일을 시도 :

stat.executeUpdate("separator ','"); 

stat.executeUpdate(".separator ','"); 

그러나 그러나,이 내가 JDBC 가이드에 따라 SQL 문을 수행 한 방법이다 둘 다 나에게 오류를 준다. 이 일을 어떻게 하죠? 감사!

답변

1

먼저 표를 만들어야합니다. 그러면 다음과 같이 CSV 파일을 읽을 수 있습니다.

BufferedReader br = new BufferedReader(new FileReader("your file")); 
String line; 
while ((line=br.readLine()) != null) 
{ 
     String[] values = line.split(","); //your seperator 

     //Convert String to right type. Integer, double, date etc. 
     stat.executeUpdate("INSERT INTO yourTable VALUES('"+value[0]+"','"+value[1]... 
     //Use a PeparedStatemant, it´s easier and safer 
} 
br.close(); 
관련 문제