Chinaunix首页 | 论坛 | 博客
  • 博客访问: 460738
  • 博文数量: 155
  • 博客积分: 2954
  • 博客等级: 少校
  • 技术积分: 1000
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-12 22:00
文章分类

全部博文(155)

文章存档

2014年(2)

2013年(5)

2012年(10)

2011年(33)

2010年(105)

我的朋友

分类: Java

2011-03-07 19:21:13

Java代码  收藏代码
  1. /** 
  2.  * 方法将RowSet数据结果集进行数据转换成XML文件 
  3.  * StringBuffer 进行字符缓存 
  4.  * ResultSetMetaData 获得RowSet的列名  
  5.  * xml文件格式如下: 
  6.  *      
  7.  * @param RowSet 
  8.  * @return string 
  9.  */  
  10. public static String convertResultSetToXML(ResultSet rs){   
  11.  StringBuffer sb = new StringBuffer();  
  12.  try{     
  13.   ResultSetMetaData   rsmd   =   rs.getMetaData();    
  14.   if   (rsmd.getColumnCount()>=0){  
  15.   
  16.    ///sb.append("");  
  17.    ///sb.append("");  
  18.      
  19.    while(rs.next()){   
  20.     sb.append("\n");  
  21.     for(int j=1;j<=rsmd.getColumnCount();j++){      
  22.      sb.append("<" +rsmd.getColumnName(j).toLowerCase()+ ">")  
  23.        .append( rs.getObject(j)==null?"":rs.getObject(j) )  
  24.        .append(" +rsmd.getColumnName(j).toLowerCase()+ ">\n");   
  25.     }        
  26.     sb.append("\n");  
  27.    }   
  28.    ///sb.append("");   
  29.   }    
  30.     
  31.     }catch(Exception   e){  
  32.      e.printStackTrace();  
  33.     }   
  34.     return sb.toString();   
  35. }  
  36.   
  37. /** 
  38.  * 方法将Map数据结果集进行数据转换成XML文件 
  39.  * StringBuffer 进行字符缓存 
  40.  * Map 获得Map的键名和值  
  41.  *  
  42.  * xml文件格式 
  43.  *  
  44.  *   
  45.  *    value 
  46.  *     
  47.  * @param map 
  48.  * @return String 
  49.  */  
  50.   
  51. public static String convertMapToXML(Map map){   
  52.  StringBuffer sb = new StringBuffer();  
  53.  Iterator it = map.entrySet().iterator();  
  54.  String key ;  
  55.  String value ;  
  56.  while(it.hasNext()){  
  57.   Map.Entry met = (Map.Entry)it.next();  
  58.   key = (String) met.getKey();  
  59.   value = (String) met.getValue();  
  60.     
  61.   sb.append("<" +key+ ">")  
  62.     .append( value )  
  63.     .append(" +key+ ">");  
  64.  }  
  65.     return sb.toString();   
  66. }  
  67.   
  68.   
  69. /** 
  70.  *  
  71.  * 这个方法用来处理将 OMElement 类型 转换成 RowSet 类型  
  72.  * 
  73.  *  输入的xml数据格式如下: 
  74.  *   
  75.  *   
  76.  *      123 
  77.  *      Zeven  
  78.  *   
  79.  *   
  80.  *      456 
  81.  *      Mike 
  82.  *   
  83.  *  ... 
  84.  *  
  85.  *    
  86.  * @param om 
  87.  * @return 
  88.  * @throws Exception  
  89.  */  
  90. public static RowSet convertXML2RowSet(OMElement om) throws Exception{  
  91.         
  92.   
  93.     //第一层  
  94.     //从的下一层  
  95.     Iterator it = om.getChildren();  
  96.     OMElement ome;  
  97.   
  98.     //第二层  
  99.     //从的下一层  
  100.     Iterator it2= null;  
  101.     OMElement ome2;  
  102.           
  103.     //多行的记录  
  104.     List list = new ArrayList();  
  105.       
  106.     //一行的字段       
  107.     Map map = null;  
  108.     String key = null;//名字  
  109.     String value = null;//值  
  110.       
  111.         try{  
  112.             while (it.hasNext()) {//第一层行数   
  113.                    
  114.                    
  115.                 ome = (OMElement)it.next();   
  116.                 log.info(ome.toString() );  
  117.                 it2 = ome.getChildren();  
  118.                 map = new Hashtable();  //每行的列数       
  119.                 while( it2.hasNext() ){  
  120.                     ome2 = (OMElement)it2.next();  
  121.                     key = ome2.getLocalName();  
  122.                     value = ome2.getText();  
  123.                     map.put(key, value);  
  124.                 }  
  125.                 list.add(map);  
  126.             }   
  127.             CachedRowSet cs = new CachedRowSet();  
  128.             cs.populate(list);  
  129.             return  cs;   
  130.           
  131.                
  132.     }catch(Exception e){  
  133.         e.printStackTrace();  
  134.         throw e;  
  135.     }  
  136. }  
  137.   
  138. /** 
  139.  * 这个方法用来处理将 ResultSet 类型 转换成 JSONArray 类型  
  140.  * [user:123,usercode:1234], 
  141.  * [user:123,usercode:1234] 
  142.  * @return 
  143.  */  
  144. public static JSONArray convertResutlSetToJSONArray(ResultSet rs ) throws Exception{   
  145.       
  146.     ResultSetMetaData   rsmd   =   rs.getMetaData();   
  147.     if(rsmd.getColumnCount()>=0){   
  148.         JSONObject row   = null;   
  149.         JSONArray table  = new JSONArray();  
  150.         while(rs.next()){    
  151.             row   = new JSONObject();  
  152.             for(int j=1 ,i=rsmd.getColumnCount();j<=i;j++){      
  153.                 row.put( rsmd.getColumnLabel(j).toLowerCase() ,rs.getObject(j)==null?"":rs.getObject(j) );   
  154.             }        
  155.             table.put( row );   
  156.         }   
  157.         return table;  
  158.     }else{   
  159.         throw new ApplicationException("没有数据");  
  160.     }  
阅读(601) | 评论(0) | 转发(0) |
0

上一篇:Velocity 语法

下一篇:利用dom4j生成XML

给主人留下些什么吧!~~