2014-12-19 3 views
0

jdbc 연결을 사용하여 응용 프로그램에있는 플랫 파일 (.txt, .xml, .csv, .xls 등)을 연결하는 데 문제가 있습니다.java jdbc를 사용하여 플랫 파일 연결

검색 한 후 아래에서 몇 가지 제안을 발견했습니다.

1) xlsql
2) JDO

I는 아래의 프로세스이며, 제 온 (xlsql) 시도했다. 먼저 core java 프로젝트를 만들고 xlsql에서 jar 파일을로드하십시오. 아래 코드는 입니다.

Class.forName("com.nilostep.xlsql.jdbc.xlDriver"); 
final String dir = System.getProperty("user.dir")+"\\db\\xl"; 
conn = DriverManager.getConnection("jdbc:nilostep:excel:/"+dir); 
Statement stmt = con.createStatement(); 
String sql = "select * from Sheet1$"; 
ResultSet rs = stmt.executeQuery(sql); 
if(rs.next()){ 
System.out.println(rs.getString(1)); 
}else{ 
System.out.println("nodata...."); 
} 

이는 Sheet1 $ table이 (가) 없습니다.

도와주세요.

답변

0

xlsql의 원칙은 약간 복잡합니다. hsqldb 또는 mysql을 sql 엔진으로 사용하고 관련 데이터베이스와 테이블을 데이터 파일로 생성 한 다음 데이터베이스를 통해 쿼리를 실행합니다. 그것은 다음을 처리합니다 :

directory -> database 
    excel file -> schema 
    sheet -> table 

그래서 스키마 접두어를 사용하여 테이블에 액세스합니다. 예를 들면 다음과 같습니다.

여기서 "demo"는 확장명이없는 Excel 파일 이름이고, xlsqly7은 시트 이름입니다. "XlSQL-Y8.zip"또는 "xlsql-Y7.zip"에는 "TestXlsql.java"예제가 있습니다. 또한 쓴 다른 하나

public static void main(String[] args) throws Exception { 
    Class.forName("com.nilostep.xlsql.jdbc.xlDriver"); 
    String dir = "C:\\Temp\\xlsql-Y7"; 
    Connection con = DriverManager.getConnection("jdbc:nilostep:excel:"+dir); 
    Statement stmt = con.createStatement(); 
    String sql = "select * from \"Book1.MergedResult\""; 
    ResultSet rs = stmt.executeQuery(sql); 
    if(rs.next()) 
    { 
     System.out.println(rs.getString(1)); 
    } 
    else{ 
     System.out.println("nodata...."); 
    } 

} 

또 다른 제약 조건이 시트의 첫 번째 행은 대문자로 시작해야합니다 열 이름이거나 시트가 무효로 간주 될 것입니다.

XLSQL에 대한 최고의 문서입니다. http://blog.csdn.net/ailvey/article/details/8779119, 불행히도 중국어로 작성되었습니다.

+0

xlsql은 xlsx 파일을 지원합니까? xlsx 파일을 지원하지 않는 jxl에 의존한다고 생각합니다. 그래서 xlsx 파일이이 라이브러리에서 지원되지 않는다고 생각합니다. 나 맞아? – user7

관련 문제