java解析xml插入数据库关于字段校验的问题

枫林夜月 发布于 2013/08/26 13:20
阅读 690
收藏 0
各位你们好,小弟今年刚毕业,学习java不久,到一家小公司上班,boss给我的任务是从xml文件中解析出表名、字段名、以及字段的值,把他插入到mysql相同的表中去,他设计的表呢有个问题,xml解析表的字段<=DB表中的字段 。这就麻烦了,这里要对表的字段进行校验  xml文件目前是40M ,涉及的表有198个,mysql的表和xml解析的表名相同,   苦恼了好几天不会解决求大神帮忙。再次谢过,我积分不多希望别介意 
xml部分信息 
<?xml version="1.0" encoding = "gbk"?>  
<rdf:RDF xml:base="nari" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cim="http://iec.ch/TC57/2003/CIM-schema-cim10#" xmlns:cimNARI="http://www.naritech.cn/CIM/ext-schema#">  
<cim:SubControlArea rdf:ID="209000001">  
        <cim:Naming.name>乐平市供电公司</cim:Naming.name>  
        <cimNARI:SubControlArea.areaNo>1</cimNARI:SubControlArea.areaNo>  
        <cimNARI:SubControlArea.recordApp>2031647</cimNARI:SubControlArea.recordApp>  
        <cimNARI:SubControlArea.MemberOf_ControlArea rdf:resource="#209000007"/>  
</cim:SubControlArea>  
<cim:BaseVoltage rdf:ID="200000003">  
        <cimNARI:BaseVoltage.name>110</cimNARI:BaseVoltage.name>  
        <cim:BaseVoltage.nominalVoltage>110.000000</cim:BaseVoltage.nominalVoltage>  
        <cimNARI:BaseVoltage.nominalI>0.000000</cimNARI:BaseVoltage.nominalI>  
        <cimNARI:BaseVoltage.v_exm>132.000000</cimNARI:BaseVoltage.v_exm>  
        <cimNARI:BaseVoltage.mva_exm>305.000000</cimNARI:BaseVoltage.mva_exm>  
</cim:BaseVoltage>  
<cim:Substation rdf:ID="210000048">  
        <cim:Naming.name>饶丰变</cim:Naming.name>  
        <cim:Naming.aliasName>饶丰变</cim:Naming.aliasName>  
        <cimNARI:Substation.substationType rdf:resource="http://www.naritech.cn/CIM/ext-schema#SubstationType.trans"/>  
        <cimNARI:Substation.recordApp>2031647</cimNARI:Substation.recordApp>  
        <cimNARI:Substation.MaxBaseVoltage rdf:resource="#200000004"/>  
        <cim:Substation.MemberOf_SubControlArea rdf:resource="#209000003"/>  
</cim:Substation>  
<cim:Measurement rdf:ID="03060009610010">  
        <cim:Naming.name>马302过流II段</cim:Naming.name>  
        <cim:Measurement.MeasurementType rdf:resource="#372000022"/>  
        <cimNARI:Measurement.RelaySignal rdf:resource="#306000961"/>  
        <cim:Measurement.MemberOf_PSR rdf:resource="#210000065"/>  
</cim:Measurement>  
<cim:Measurement rdf:ID="03070020190010">  
        <cim:Measurement.maxValue>0.000000</cim:Measurement.maxValue>  
        <cim:Measurement.minValue>0.000000</cim:Measurement.minValue>  
        <cim:Naming.name>茶山变_10kV天鹅一路线线电压BC相    </cim:Naming.name>  
        <cim:Measurement.MeasurementType rdf:resource="#372000032"/>  
        <cimNARI:Measurement.MeasValue rdf:resource="#307002019"/>  
        <cim:Measurement.MemberOf_PSR rdf:resource="#210000083"/>  
</cim:Measurement>  
</rdf:RDF>
加载中
0
情天大圣
情天大圣
做国家电网项目啊,有钱途
0
Glogo
Glogo

然后字段校验过程发生了什么问题呢

0
枫林夜月
怎么校验呢, 数据库的表名和字段名全部取出来,xml的表名和字段名全部取出来,在同一个表下,要进行字段的校验,什么方法比较好   我现在是最笨的方法是,先拿一个表名,去取它在数据库的字段和xml的字段,放到list集合中去,两个list校验,有相同的字段拿出来放到新的list里面去,然后就是sql语句,  boss不认同啊(一个表要遍历一次xml,它嫌效率低下)   大家有什么更好的办法呢
返回顶部
顶部