2014-12-19 2 views
0

У меня возникла проблема с подключением плоских файлов (.txt, .xml, .csv, .xls и т. Д.), Которые уже существуют в приложении, с использованием jdbc-соединения.Подключить плоские файлы с помощью java jdbc

После поиска я нашел несколько предложений ниже.

1) xlsql
2) JDO

Я попытался с первой (xlsql), ниже процесс. Сначала создайте проект ядра java и загрузите файлы jar из xlsql. ниже код

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...."); 
} 

Это говорит Лист1 $ таблица не существует.

Пожалуйста, помогите мне.

ответ

0

Принцип xlsql немного сложный, он использует hsqldb или mysql в качестве SQL-движков, создает связанные базы данных и таблицы с данными из файлов excels, а затем выполняет запросы по базе данных. Он обрабатывает:

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

поэтому он обращается к таблице с использованием префикса схемы. например:

String sql = "select * from \"demo.xlsqly7\""; 

Здесь «демо» это имя файла 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...."); 
    } 

} 

Другое ограничение в том, что первая строка листа должна быть имена столбцов, которые должны начинаться с заглавной буквы, или лист будет считаться Invalidate.

Это лучший документ о XLSQL: http://blog.csdn.net/ailvey/article/details/8779119, к сожалению, он написан на китайском языке.

+0

Поддерживает ли xlsql файлы xlsx? Я думаю, что это зависит от jxl, который не поддерживает файлы xlsx. Итак, я думаю, что файлы xlsx не поддерживаются этой библиотекой. Я прав? – user7

Смежные вопросы