Java中ResultSet不能一键转XML,但可用JDBC配合XMLStreamWriter(推荐)或StringBuilder拼接实现:先用ResultSetMetaData获取列信息,再逐行生成带根节点和row元素的XML,注意null处理及避免rs.getString强转。
Java 中 ResultSet 本身不能直接“一键转 XML”,但可以通过标准 JDBC API 配合简单逻辑,把查询结果逐行遍历生成符合结构的 XML 字符串。核心思路是:用 ResultSetMetaData 获取列名和类型,再用 XMLStreamWriter(推荐)或字符串拼接方式输出格式化 XML。
这是最推荐的方式——轻量、内存友好、不依赖第三方库(JDK 6+ 自带),还能控制缩进和编码。
XMLStreamWriter,例如写入 StringWriter 或文件writeStartDocument() 开始文档,writeStartElement("rows") 作为根节点ResultSet,每行调用 writeStartElement("row")
rsmd.getColumnName(i) 和 rs.getObject(i) 获取字段名与值,写为子元素(如 1 )、& 等)无需手动转义——XMLStreamWriter 自动处理
用 StringBuilder 拼接(适合小数据、快速验证)如果只是临时调试或结果很小,可跳过 StAX,用字符串拼接:
""
"" + escapeXml(value) + ""+colName+">
"
escapeXml() 方法(替换 & → &, → zuojiankuohaophpcn,> → youjiankuohaophpcn)
""
避免踩坑的关键点:
rs.getObject(i) 再 toString()rs.next() 循环内完成,不能提前 close()getColumnName() 返回的是实际大小写,建议统一转小写或按需处理基本上就这些。不需要额外依赖,JDK 自带能力就能稳妥搞定。重点是别跳过元数据获取和空值/特殊字符处理。