簡體   English   中英

無法從Java將txt文件上傳到SQL

[英]Trouble uploading txt file into SQL from Java

我知道我可能確實缺少一些明顯的東西,但是我無法將文本文件從Windows客戶端上運行的Java應用程序提升到MSSQL服務器。 它采用多行並將它們全部加載到一條記錄中,從而為每行生成一個新記錄。

文本文件是由Java應用程序使用System.lineSeparator()分隔行而生成的,輸出會很好地檢查記事本中的文件以及上傳txt文件的代碼,如下所示

        File file = new File(fileName);
        FileInputStream fis = new FileInputStream(file);
        PreparedStatement pstmt = con1.prepareStatement("insert into " + 
                tableName + "(" + columnName + ") values (?)");
        pstmt.setAsciiStream(1, fis, (int) file.length());
        pstmt.executeUpdate();
        fis.close();

我已經嘗試將System.lineSeparator()替換為\\ r \\ n,但也沒有運氣...任何想法都將不勝感激

帶有注釋的代碼:

File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);

一個OK。 得到代表文件的流

PreparedStatement pstmt = con1.prepareStatement("insert into " + 
                tableName + "(" + columnName + ") values (?)");

b)好。 得到了一條更新語句,其中參數是被放入colyumnName的值

pstmt.setAsciiStream(1, fis, (int) file.length());

c)這是將參數的值設置為從位置1到末尾的整個文件流

pstmt.executeUpdate();
fis.close();

執行該語句並關閉文件流。

您只需執行一次SQL語句,告訴它寫入整個文件。 這就是它正在做的。

如何解決這個問題? 步驟b)之后,逐行讀取文件流,並為每一行設置參數值並執行SQL語句。 或b)在將整個文件流讀取為一個字符串之后,將其拆分為一個行數組,並為每一行設置參數並執行SQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM