Java 将数据库表(带BLOB)导出到CSV

Java 将数据库表(带BLOB)导出到CSV,java,csv,export-to-csv,Java,Csv,Export To Csv,有人能教我如何使用java将带有BLOB的表导出到CSV吗?然后我会把它们导入。关于这个问题的一些概念和一些代码可以帮助解释。 谢谢。如果是我,我会对二进制数据进行编码,然后像其他任何字段一样将其写出。这方面有很好的API。我会根据您的需要使用Base32或Base64二进制编码器。这可能被称为URL编码,但我不是100%确定…概念仍然是一样的,您仍然只是获取二进制数据并将其编码为字符串: byte[] myBlobData = \\ Retrieve from database Base32

有人能教我如何使用java将带有BLOB的表导出到CSV吗?然后我会把它们导入。关于这个问题的一些概念和一些代码可以帮助解释。
谢谢。

如果是我,我会对二进制数据进行编码,然后像其他任何字段一样将其写出。这方面有很好的API。我会根据您的需要使用Base32或Base64二进制编码器。这可能被称为URL编码,但我不是100%确定…概念仍然是一样的,您仍然只是获取二进制数据并将其编码为字符串:

byte[] myBlobData = \\ Retrieve from database
Base32 encoder = new Base32();
String encodedData = encoder.encodeToString(myBlobData);
// Write out data as you normally would for a CSV file
然后要读回,只需做相反的操作:

String encodedData = \\ Read from file
byte[] myBlobData = encoder.decode(encodedData);

我想这对你会很好。URL编码(或类似编码)在这方面效果很好,因为它们的设计允许二进制数据作为字符串安全传输。如果您不想使用Apache Commons库,您可能可以使用Java获得。

因此您有一个表,其中一列是BLOB,并且您想将整个表导出到CSV?是的,我有一个表,其中一列是BLOB。一旦您将BLOB转换为Base64,我建议使用OpenCSV来编写CSV文件。那么,你的意思是我必须对我的表进行编码解码,然后对Base64使用CSVWriter?+1。URLEncoder只处理字符串,所以这不是一个真正的选项。