求助!!在java中,怎样把读到的数据库表的信息直接输出为一个xml格式的文件啊?急!!(不确定哪个库的哪张表)麻烦的是不确定哪个库的哪张表,库名和表名在web页面给出,点击确定后,就要在指定路径下生成xml文件,xml文件格式内容是:
<根节点>
<字段名>字段中的数据</字段名>
<字段名>字段中的数据</字段名>
...
</根节点>
<根节点>
<字段名>字段中的数据</字段名>
<字段名>字段中的数据</字段名>
...
</根节点>
解决方案 »
- request.getParameter("abc")从表单得值出了问题
- 文件接口,数据都以TXT文件进行传输,以FTP的方式上传到汇集分析系统指定的接口机目录下 木有思路,以前木有用过,各位大哥,大姐给个思路啊!
- tomcat的下载版本的区别
- ECLIPSE语法着色的问题
- java右键创建的类如何用代码来实现
- 做个查询功能,但网页无法向JAVA ACtion 传递中文,怎么处理?
- JAVA控制小票机打印
- 在广州用J2EE的主要使用什么技术?
- 求教:如何使用InstallAnywhere 中的“Extract To File”功能
- 求助:怎么安装uPortal?
- lucene搜索速度问题
- 头疼,hibernate+mysql中文乱码
自己上网下一个jdom.jar,再下一个示例,ok了
public static void main(String[] args) throws Exception {
Connection conn = getConnection("jdbc:mysql://localhost:3306/photobookonline?useUnicode=true&characterEncoding=UTF-8", "root", "123456", "com.mysql.jdbc.Driver");
ByteArrayInputStream bais = new ByteArrayInputStream(export(conn, "template").getBytes("utf-8"));
FileOutputStream fos = new FileOutputStream("c:/test.xml"); int len = 0;
byte[] buffer = new byte[4096];
while ((len = bais.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.flush();
fos.close();
bais.close();
} public static String export(Connection conn, String tableName) throws Exception { PreparedStatement ps = conn.prepareStatement("select * from " + tableName);
ResultSet rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
String[] cols = new String[rsmd.getColumnCount()];
for (int i = 0; i < rsmd.getColumnCount(); i++) {
cols[i] = rsmd.getColumnName(i + 1);
} StringBuffer sb = new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.append("\r\n\r\n"); sb.append("<records>");
sb.append("\r\n");
while (rs.next()) {
sb.append("\t<record>");
sb.append("\r\n");
for (String s : cols) {
sb.append("\t\t<column name=\"" + s + "\">");
sb.append(rs.getObject(s));
sb.append("</column>");
sb.append("\r\n");
}
sb.append("\t</record>");
sb.append("\r\n");
}
sb.append("</records>"); rs.close();
ps.close();
conn.close(); return sb.toString();
} public static Connection getConnection(String url, String user, String password, String driver) throws Exception {
Class.forName(driver);
return DriverManager.getConnection(url, user, password);
}数据量小直接可以用,但数据量大的话就要自己优化下了