繁体   English   中英

如何使用Java ResultSet将结果转换为字符串

[英]How to use Java ResultSet to convert the results to a String

我正在创建一个程序以远程连接到MySQL服务器,并创建一个没有控制台访问权限的.sql文件。 我正在手动执行此操作以跟踪进度。

.sql转储文件中,有一行是INSERT INTO 我可以轻松地使用数字和字符串对象来实现此目的,但是如何使用Blob和Date来做到这一点呢?

有什么办法可以使用set.getObject(column); 并将其转换为可以放入.sql文件的字符串?

如果没有,我可以使用set.getMetaData().getColumnType(column)然后与许多数据类型中的每一个进行比较吗? 然后从那里如何将其转换为字符串以放置到文件中?

感谢您的任何帮助。

另外,我在较早时发表了这篇文章 ,它提供了有关我在做什么以及原因的更多信息。

编辑:这被标记为重复,但另一个答案即使有丝毫也无法回答我的问题。 这说明了如何使用文本数据类型。 我需要知道如何使用BLOBS,Date和所有其他SQL数据类型来做到这一点。

编辑2:我需要一个可以与所有数据类型一起使用的解决方案,而不仅仅是提到的那些。

对于日期,请使用ResultSet.getDate() ,然后使用带有yyyy-MM-dd HH:mm:ss模式的SimpleDateFormat转换为String。 ResultSet.getTimestamp()并从时间戳时间(以毫秒为单位ResultSet.getTimestamp()创建一个新的Date。 然后使用CAST('2018-03-12 14:15:16' AS DATETIME)CAST('2018-03-12 14:15:16' AS DATE)将日期字符串写入生成的SQL文件。

对于Blob,请使用ResultSet.getBinaryStream()将流写入byte[]数组。 然后遍历数组,并生成每个字节两位数字的十六进制字符串。 最后将字符串作为INSERT INTO table (the_blob_column) VALUES (x'89A099D153EF')放入输出SQL中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM