【发布时间】:2014-09-16 14:37:47
【问题描述】:
如何使用 jdbc 将整个表写入平面文件(文本文件)?到目前为止,我尝试了以下方法:
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("SELECT * FROM tablename");
BufferedInputStream buffer;
FileOutputStream out = new FileOutputStream("flatfile.txt");
while(result.next() )
{
buffer = new BufferedInputStream(result.getBinaryStream("????") );
byte[] buf = new byte[4 * 1024]; //4K buffer
int len;
while( (len = buffer.read(buf, 0, buf.length) ) != -1 )
{
out.write(buf, 0, len );
}
}
out.close();
“???”只是我的占位符。我被困在作为参数传递的内容上。
【问题讨论】:
-
你有什么问题?
-
我只是替换'????'用“”来获取所有列,或者 ResultSet 或其他类中是否有另一个函数来获取整行?我只想要整行。不只是该记录的一列。我还没有要测试的数据库连接,所以我只是想提前弄清楚,所以我准备好了。
-
ResultSet不提供处理整行的方法。您需要单独处理列。您可能会发现 getMetaData() 方法很有用。 -
Plus
getBinaryStream()仅适用于BLOB列 - 仅此而已。 -
好吧,这就是我的想法,java.sql.Statement 似乎除了 executeQuery() 之外没有其他任何东西,那么还有其他类可以帮助解决这个问题吗?
标签: java sql jdbc db2 resultset