通过给定的表名导出所有数据生成xml文件
发布时间:2020-12-16 02:05:55 所属栏目:百科 来源:网络整理
导读:题目要求:使用JDBC读取scott用户下emp表中的所有人员信息,并使用DOM4J组件输出为xml格式的文件,xml文件格式如下Java代码 ?xml version="1.0" encoding="UTF-8"? ROOT EMP ROWNUM1/ROWNUM EMPNO7369/EMPNO ENAMESMITH/ENAME JOBCLERK/JOB MGR7902/MGR HIRE
题目要求: 使用JDBC读取scott用户下emp表中的所有人员信息,并使用DOM4J组件输出为xml格式的文件,xml文件格式如下 Java代码 <?xml version="1.0" encoding="UTF-8"?> <ROOT> <EMP> <ROWNUM>1</ROWNUM> <EMPNO>7369</EMPNO> <ENAME>SMITH</ENAME> <JOB>CLERK</JOB> <MGR>7902</MGR> <HIREDATE>1980-12-17 00:00:00.0</HIREDATE> <SAL>800</SAL> <COMM></COMM> <DEPTNO>20</DEPTNO> </EMP> <!--其他行记录--> </ROOT> <?xml version="1.0" encoding="UTF-8"?> <ROOT> <EMP> <ROWNUM>1</ROWNUM> <EMPNO>7369</EMPNO> <ENAME>SMITH</ENAME> <JOB>CLERK</JOB> <MGR>7902</MGR> <HIREDATE>1980-12-17 00:00:00.0</HIREDATE> <SAL>800</SAL> <COMM></COMM> <DEPTNO>20</DEPTNO> </EMP> <!--其他行记录--> </ROOT> 注意上面的文件节点中,EMPNO,ENAME,JOB,SAL等信息,请从ResultSetMetaData对象中获取。 解答: Java代码 package com.sun.demo; import java.io.FileWriter; import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class CreateXML { /** * 通过给定的表名导出所有数据生成xml文件 * @param tableName 数据库表名 */ public static void createXml(String tableName) { System.out.println("==========转换开始=============="); try { // -------------jdbc代码 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user = "scott";// oracle第一个使用oracle的人,斯科特 String password = "tiger";// cat的名字 Connection con = DriverManager.getConnection(url,user,password); String sql = "select rownum,e.* from " + tableName + " e"; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); // 任务:从resultset结果集中提取元数据信息 ResultSetMetaData rsmd = rs.getMetaData(); // 表的字段数目 int count = rsmd.getColumnCount(); // 存入列名数组 String[] columnName = new String[count]; for (int i = 1; i <= count; i++) { columnName[i - 1] = rsmd.getColumnName(i); } // -----------------使用DOM4J生成xml文件 Document doc = DocumentHelper.createDocument(); // 生成根节点 Element root = doc.addElement("ROOT"); int i; while (rs.next()) { Element emp = root.addElement("EMP"); for (i = 1; i <= count; i++) { Element column = emp.addElement(columnName[i - 1]); if (rs.getObject(i) != null) { column.setText(rs.getObject(i) + ""); } else { column.setText(""); } } } // 写入文件 Writer w = new FileWriter("src/" + tableName + ".xml"); OutputFormat opf = OutputFormat.createPrettyPrint(); opf.setEncoding("UTF-8"); XMLWriter xw = new XMLWriter(w,opf); xw.write(doc); // 关闭文件流 xw.close(); w.close(); rs.close(); ps.close(); con.close(); System.out.println("==========生成完毕=============="); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { createXml("DEPT"); } } package com.sun.demo; import java.io.FileWriter; import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class CreateXML { /** * 通过给定的表名导出所有数据生成xml文件 * @param tableName 数据库表名 */ public static void createXml(String tableName) { System.out.println("==========转换开始=============="); try { // -------------jdbc代码 Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; String user = "scott";// oracle第一个使用oracle的人,斯科特 String password = "tiger";// cat的名字 Connection con = DriverManager.getConnection(url,password); String sql = "select rownum,e.* from " + tableName + " e"; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); // 任务:从resultset结果集中提取元数据信息 ResultSetMetaData rsmd = rs.getMetaData(); // 表的字段数目 int count = rsmd.getColumnCount(); // 存入列名数组 String[] columnName = new String[count]; for (int i = 1; i <= count; i++) { columnName[i - 1] = rsmd.getColumnName(i); } // -----------------使用DOM4J生成xml文件 Document doc = DocumentHelper.createDocument(); // 生成根节点 Element root = doc.addElement("ROOT"); int i; while (rs.next()) { Element emp = root.addElement("EMP"); for (i = 1; i <= count; i++) { Element column = emp.addElement(columnName[i - 1]); if (rs.getObject(i) != null) { column.setText(rs.getObject(i) + ""); } else { column.setText(""); } } } // 写入文件 Writer w = new FileWriter("src/" + tableName + ".xml"); OutputFormat opf = OutputFormat.createPrettyPrint(); opf.setEncoding("UTF-8"); XMLWriter xw = new XMLWriter(w,opf); xw.write(doc); // 关闭文件流 xw.close(); w.close(); rs.close(); ps.close(); con.close(); System.out.println("==========生成完毕=============="); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { createXml("DEPT"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |