国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JDK6的新特性之二:使用JAXB2來實現(xiàn)對象與XML之間的映射
JDK6的新特性之二:使用JAXB2來實現(xiàn)對象與XML之間的映射 
JAXB是Java Architecture for XML Binding的縮寫,可以將一個Java對象轉(zhuǎn)變成為XML格式,反之亦然。我們把對象與關系數(shù)據(jù)庫之間的映射稱為ORM, 其實也可以把對象與XML之間的映射稱為OXM(Object XML Mapping). 原來JAXB是Java EE的一部分,在JDK6中,SUN將其放到了Java SE中,這也是SUN的一貫做法。JDK6中自帶的這個JAXB版本是2.0, 比起1.0(JSR 31)來,JAXB2(JSR 222)用JDK5的新特性Annotation來標識要作綁定的類和屬性等,這就極大簡化了開發(fā)的工作量。實際上,在Java EE 5.0中,EJB和Web Services也通過Annotation來簡化開發(fā)工作。另外,JAXB2在底層是用StAX(JSR 173)來處理XML文檔。 閑話不多說了,下面用代碼演示在JDK6中如何來用JAXB2

public class JAXB2Tester {
    public static void main(String[] args) throws JAXBException,IOException {
        JAXBContext context = JAXBContext.newInstance(Person.class);
        //下面代碼演示將對象轉(zhuǎn)變?yōu)閤ml
        Marshaller m = context.createMarshaller();
        Address address = new Address("China","Beijing","Beijing","ShangDi West","100080");
        Person p = new Person(Calendar.getInstance(),"JAXB2",address,Gender.MALE,"SW");
        FileWriter fw = new FileWriter("person.xml");
        m.marshal(p,fw);

        //下面代碼演示將上面生成的xml轉(zhuǎn)換為對象
        FileReader fr = new FileReader("person.xml");
        Unmarshaller um = context.createUnmarshaller();
        Person p2 = (Person)um.unmarshal(fr);
        System.out.println("Country:"+p2.getAddress().getCountry());
    }
}

@XmlRootElement//表示person是一個根元素
class Person {    
    @XmlElement
    Calendar birthDay; //birthday將作為person的子元素

    @XmlAttribute
    String name; //name將作為person的的一個屬性

    public Address getAddress() {
        return address;
    }

    @XmlElement
    Address address; //address將作為person的子元素

    @XmlElement
    Gender gender; //gender將作為person的子元素

    @XmlElement
    String job; //job將作為person的子元素

    public Person(){
    }
    
    public Person(Calendar birthDay, String name, Address address, Gender gender, String job) {
        this.birthDay = birthDay;
        this.name = name;
        this.address = address;
        this.gender = gender;
        this.job = job;
    }
}

enum Gender{
    MALE(true),
    FEMALE (false);
    private boolean value;
    Gender(boolean _value){
        value = _value;
    }
}

class Address {
    @XmlAttribute
    String country;
    @XmlElement
    String state;
    @XmlElement
    String city;
    @XmlElement
    String street;
    String zipcode; //由于沒有添加@XmlElement,所以該元素不會出現(xiàn)在輸出的xml中

    public Address() {
    }

    public Address(String country, String state, String city, String street, String zipcode) {
        this.country = country;
        this.state = state;
        this.city = city;
        this.street = street;
        this.zipcode = zipcode;
    }


    public String getCountry() {
        return country;
    }
}

運行該程序,我們會得到一個person.xml的文件,如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 

<person name="JAXB2">
      <birthDay>2006-12-28T08:49:27.203+00:00</birthDay> 
       <address country="China">
            <state>Beijing</state> 
            <city>Beijing</city> 
            <street>ShangDi West</street> 
  </address>
       <gender>MALE</gender> 
       <job>SW</job> 
</person>
控制臺會輸出

Country:China

最后,想說一點,除了JAXB之外,我們還可以通過XMLBeans和Castor等來實現(xiàn)同樣的功能。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
應用 JAXB 把 XML 轉(zhuǎn)換成相應的 JavaBean
用JAXB實現(xiàn)JAVA對象與XML文件的綁定
JAXB完成XML和Java對象的互轉(zhuǎn)
java使用jaxb操作xml示例
JAXB--簡單應用(一)
使用JAXB從一個對象模型中產(chǎn)生XML文檔
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服