不同的结果集转换成XML

xiaoxiao2022-12-01  149

/** * 方法将RowSet数据结果集进行数据转换成XML文件 * StringBuffer 进行字符缓存 * ResultSetMetaData 获得RowSet的列名 * xml文件格式如下: * * @param RowSet * @return string */ public static String convertResultSetToXML(ResultSet rs){ StringBuffer sb = new StringBuffer(); try{ ResultSetMetaData rsmd = rs.getMetaData(); if (rsmd.getColumnCount()>=0){ ///sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); ///sb.append("<response>"); while(rs.next()){ sb.append("<row>\n"); for(int j=1;j<=rsmd.getColumnCount();j++){ sb.append("<" +rsmd.getColumnName(j).toLowerCase()+ ">") .append( rs.getObject(j)==null?"":rs.getObject(j) ) .append("</" +rsmd.getColumnName(j).toLowerCase()+ ">\n"); } sb.append("</row>\n"); } ///sb.append("</response>"); } }catch(Exception e){ e.printStackTrace(); } return sb.toString(); } /** * 方法将Map数据结果集进行数据转换成XML文件 * StringBuffer 进行字符缓存 * Map 获得Map的键名和值 * * xml文件格式 * <?xml version=\"1.0\" encoding=\"UTF-8\"?> * <key> * value * </key> * @param map * @return String */ public static String convertMapToXML(Map map){ StringBuffer sb = new StringBuffer(); Iterator it = map.entrySet().iterator(); String key ; String value ; while(it.hasNext()){ Map.Entry met = (Map.Entry)it.next(); key = (String) met.getKey(); value = (String) met.getValue(); sb.append("<" +key+ ">") .append( value ) .append("</" +key+ ">"); } return sb.toString(); } /** * * 这个方法用来处理将 OMElement 类型 转换成 RowSet 类型 * * 输入的xml数据格式如下: *<rows>   * <row> * <id>123</id> * <name>Zeven</name> * </row> * <row> * <id>456</id> * <name>Mike</name> * </row> * ... * </rows> * * @param om * @return * @throws Exception */ public static RowSet convertXML2RowSet(OMElement om) throws Exception{ //第一层 //从<root></root>的下一层 Iterator it = om.getChildren(); OMElement ome; //第二层 //从<row></row>的下一层 Iterator it2= null; OMElement ome2; //多行的记录 List list = new ArrayList(); //一行的字段 Map map = null; String key = null;//名字 String value = null;//值 try{ while (it.hasNext()) {//第一层行数 ome = (OMElement)it.next(); log.info(ome.toString() ); it2 = ome.getChildren(); map = new Hashtable(); //每行的列数 while( it2.hasNext() ){ ome2 = (OMElement)it2.next(); key = ome2.getLocalName(); value = ome2.getText(); map.put(key, value); } list.add(map); } CachedRowSet cs = new CachedRowSet(); cs.populate(list); return cs; }catch(Exception e){ e.printStackTrace(); throw e; } } /** * 这个方法用来处理将 ResultSet 类型 转换成 JSONArray 类型 * [user:123,usercode:1234], * [user:123,usercode:1234] * @return */ public static JSONArray convertResutlSetToJSONArray(ResultSet rs ) throws Exception{ ResultSetMetaData rsmd = rs.getMetaData(); if(rsmd.getColumnCount()>=0){ JSONObject row = null; JSONArray table = new JSONArray(); while(rs.next()){ row = new JSONObject(); for(int j=1 ,i=rsmd.getColumnCount();j<=i;j++){ row.put( rsmd.getColumnLabel(j).toLowerCase() ,rs.getObject(j)==null?"":rs.getObject(j) ); } table.put( row ); } return table; }else{ throw new ApplicationException("没有数据"); } } 相关资源:将sql数据转化为xml格式说明
转载请注明原文地址: https://www.6miu.com/read-4979214.html

最新回复(0)