2016-04-25 6 views
-2

Ich habe eine Java-Anwendung mit apache-poi 3.5.Speichern * .xls * .csv * .xlsx in Microsoft Sql Server

Meine Datenbank ist Microsoft Sql Server.

In meiner Anwendung mache ich einen Upload und ich möchte wissen, ob es möglich ist, meine Datei (*.xls, *.csv, *.xlsx) direkt in meiner Datenbank zu speichern?

+0

Versuchen Sie, die Datei selbst (d. H. Als BLOB) oder die Daten in der Datei zu speichern (d. H. Die Tabelle in eine SQL-Tabelle zu importieren?). Wie auch immer, ja, es ist möglich. –

Antwort

1

Sie könnte in Erwägung ziehen Sie die Dateien in ihre binäre Äquivalent (a byte[]) und mit einem VARBINARY(MAX) Feld den Inhalt sowie den Dateinamen zu speichern, konvertieren, so dass Sie die Datei ordnungsgemäß rekonstruieren könnte):

// Retrieve the byte[] data for your file 
byte[] data = Files.readAllBytes(new File("/path/to/file").toPath()); 
// Write this data to a VARBINARY(MAX) field in SQL here 

Es gibt eine Vielzahl von Ansätzen, um damit umzugehen, aber dies wäre der naivste Ansatz.

+0

ok, also wie kann ich meine Datei in ihre Binaey konvertieren? – Mercer

+0

Es gibt auch einige Möglichkeiten, damit umzugehen. [Diese verwandte Diskussion] (http://stackoverflow.com/q/858980/557445) spricht eine Vielzahl von ihnen an, also ist es nur eine Frage der Präferenz. Im Grunde wollen Sie nur Ihren Dateinamen oder einen 'InputStream' übergeben, der auf Ihre Datei verweist und die entsprechenden Daten der Datei'byte []' abruft, so dass Sie diese in Ihrer Datenbank speichern können. –

+0

ich benutze Java 1.5 gibt es keine 'Files' Methode – Mercer