将XML结点转换成JAVABEAN并存入数据库 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-25
.element(attName); if (elmt != null) { Field field = this.getClass().getDeclaredField(attName); BusiNode att = (BusiNode) field.getType().newInstance(); att.parseFromXML(elmt); PropertyUtils.setProperty(this, attName, att); } } catch (Exception e) { throw new RuntimeException(e); } } } /** * 解析类集属性 * * @param rootElement */ protected void parseCollectionPropsFromXml(Element rootElement) { // 先解析XML属性 Element xmlElementParent = getXmlElementParent(rootElement); if (xmlElementParent == null) { return; } // 最后解析类集属性 Map collectionPropsMap = this.getCollectionPropsMap(); for (Iterator it = collectionPropsMap.keySet().iterator(); it.hasNext();) { try { String attName = (String) it.next(); Collection coll = (Collection) PropertyUtils.getProperty(this, attName); Class attType = (Class) collectionPropsMap.get(attName); Iterator collElementsIt = this.getCollectionElementIterator( xmlElementParent, attName); // xmlElementParent.elementIterator(attName); while (collElementsIt.hasNext()) { Element collElmt = (Element) collElementsIt.next(); BusiNode sinlgeAtt = (BusiNode) attType.newInstance(); sinlgeAtt.parseFromXML(collElmt); coll.add(sinlgeAtt); } } catch (Exception e) { throw new RuntimeException(e); } } } /** * 从XML中解析出结点。此方法可能抛出RumtimeException */ public void parseFromXML(Element rootElement) { this.parseAttributesFromXml(rootElement); this.parseAtomicElementFromXml(rootElement); this.parseBusiNodeElementFromXml(rootElement); this.parseCollectionPropsFromXml(rootElement); }}/*** 入库* JdbcUtil,MyUtils的代码欠奉**/public class BusiNodeDAO { private Long saveBusiNode(BusiNode node, Long parentNodeId) { // 先存储原子属性 Long id = saveBareBusiNode(node, parentNodeId); // 再存储类集属性 Map collectionPropsMap = node.getCollectionPropsMap(); for (Iterator it = collectionPropsMap.keySet().iterator(); it.hasNext();) { String attName = (String) it.next(); Collection coll = null; try { coll = (Collection) PropertyUtils.getProperty(node, attName); } catch (Exception e) { throw new RuntimeException("编码错误"); } for (Iterator iitt = coll.iterator(); iitt.hasNext();) { BusiNode subNode = (BusiNode) iitt.next(); saveBusiNode(subNode, id); } } // 最后存储 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于将XML结点转换成JAVABEAN并存入数据库 - 编程入门网的所有评论