开发者

Adding the xml file to the database using arraylist in java

I am able to read a XML file using the following code.I need to Know how to add the xml to the device database using the arraylist.

Xml code:

    public static void main(String argv[]) {

  try {

File fXmlFile = new File("c:\\testing.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();


NodeList nList = doc.getElementsByTagName("device");

for (int temp = 0; temp < nList.getLength(); temp++) {

   Node nNode = nList.item(temp);       
   if (nNode.getNodeType() == Node.ELEMENT_NODE) {

     Element eElement = (Element) nNode;
     ArrayList<Device> arrayList = new ArrayList<Device>();

     //System.out.println(arrayList);
     String type=getTagValue("type", eElement);
     String Name=getTagValue("name", eElement);
     String Setup=getTagValue("setup", eElement);
     arrayList.add(type);
     a开发者_如何学PythonrrayList.add(Name);
     arrayList.add(Setup);
     System.out.println(arrayList);



    }
    }
  } catch (Exception e) {
     e.printStackTrace();
 }
}

  private static String getTagValue(String sTag, Element eElement){
   NodeList nlList= eElement.getElementsByTagName(sTag).item(0).getChildNodes();
   Node nValue = (Node) nlList.item(0); 

   return nValue.getNodeValue();    
}

  }

Device.java

  import java.util.HashSet;
  import java.util.Set;

  import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
  import javax.persistence.Id;
  import javax.persistence.JoinColumn;
 import javax.persistence.JoinTable;
 import javax.persistence.OneToMany;
  import javax.persistence.Table;
@Entity
@Table(name = "DEVICE")
 public class Device  {
    private String type;
    private String setup;
    private String name;
    private Long deviceId;
    private Set<CommandInfo> commandSet = new HashSet<CommandInfo>(); 

    public Device() {

    }

    public Device(String name, String type, String setup) {
            System.out.println("name = "+name+" type = "+type+" setup = "+setup);
            this.name = name;
            this.type = type;
            this.setup = setup;
    }

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

    /**
     * @param type the type to set
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * @return the setup
     */
    public String getSetup() {
        return setup;
    }

    /**
     * @param setup the setup to set
     */
    public void setSetup(String setup) {
        this.setup = setup;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the id
     */
    @Id
    @GeneratedValue
    @Column(name = "DEVICE_ID")
    public Long getDeviceId() {
        return deviceId;
    }

    /**
     * @param id the id to set
     */
    public void setDeviceId(Long id) {
        this.deviceId = id;
    }

    /**
     * @return the commandSet
     */
    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "DEVICE_COMMAND", joinColumns = { 
            @JoinColumn(name = "DEVICE_ID") }, 
            inverseJoinColumns = { @JoinColumn(name = "COMMAND_ID") 
    })
    public Set<CommandInfo> getCommandSet() {
        return commandSet;
    }

    /**
     * @param commandSet the commandSet to set
     */
    public void setCommandSet(Set<CommandInfo> commandSet) {
        this.commandSet = commandSet;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Device [type=");
        builder.append(type);
        builder.append(", setup=");
        builder.append(setup);
        builder.append(", name=");
        builder.append(name);
        builder.append(", deviceId=");
        builder.append(deviceId);
        builder.append(", commandSet=");
        builder.append(commandSet);
        builder.append("]");
        return builder.toString();
    }


  }

Can anyone help me how to add this xml object to the database in java .Thanks in advance.


If you want to store the raw XML in your database, you can use a byte[] attribute in your Device class. Then, convert the XML document to a byte array and store it accordingly. If you have to handle larger files you should look at streaming as well.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜