jaxb将javabean转化成xml

博客介绍了JAXB框架在XML与JavaBean之间的转换应用,包括@XmlRootElement、@XmlElement、@XmlAttribute、@XmlType和@XmlAccessorType等注解的用途。通过代码示例展示了如何将XML转换为JavaBean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对了对了,最近还接触了jaxb,这个是啥呢,就是xml与JavaBean的相互转换。
最近才知道,就算参数是xml,那也还是String类型。xml只是个格式,只是xml格式的String而已啦。
先来说一下我到的jaxb注解。
@XmlRootElement.将java类或枚举映射成xml元素根节点,是唯一一个必须注解。name属性指定根节点名称,不写就默认类名小写。
@XmlElement.将java类的一个属性映射为xml节点元素,name属性可自定义元素名。
@XmlAttribute.将java的一个属性映射为xml节点的属性,name属性可自定义属性名。
@XmlType. 将java类或枚举映射到xml模式类型。常与@XmlRootElement.@XmlAccessorType共用,proOrder属性定义字段生成的xml节点顺序。
@XmlAccessorType 定义映射这个类中的何种类型需要映射到XML。可接收四个参数,分别是:
XmlAccessType.FIELD:映射这个类中的所有字段到XML
XmlAccessType.PROPERTY:映射这个类中的属性(get/set方法)到XML
XmlAccessType.PUBLIC_MEMBER:将这个类中的所有public的field或property同时映射到XML(默认)
XmlAccessType.NONE:不映射
@XmlElementWrapper.对于数组或集合,生成一个包装该数组或集合的xml元素,该注解只能用在集合上。
概念对我这种小白来说,简直就是无字天书,所以说,上代码。

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "BaseInfo")
public class BaseInfo {
    @XmlElement(name = "CardID")
    private String cardID;

    @XmlElement(name = "PatientName")
    private String patientName;

    @XmlElement(name = "BirthDate")
    private String birthDate;

    @XmlElement(name = "GenderCode")
    private String genderCode;

    @XmlElement(name = "NationCode")
    private String nationCode;

    @XmlElement(name = "EmployerOrgName")
    private String employerOrgName;

    @XmlElement(name = "IDR_OccupationCode")
    private String idr_OccupationCode;

    public String getCardID() {
        return cardID;
    }

    public void setCardID(String cardID) {
        this.cardID = cardID;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getBirthDate() {
        return birthDate;
    }
    public void setBirthDate(String birthDate) {
        this.birthDate = birthDate;
    }
    public String getGenderCode() {
        return genderCode;
    }
    public void setGenderCode(String genderCode) {
        this.genderCode = genderCode;
    }
    public String getNationCode() {
        return nationCode;
    }
    public void setNationCode(String nationCode) {
        this.nationCode = nationCode;
    }
    public String getEmployerOrgName() {
        return employerOrgName;
    }
    public void setEmployerOrgName(String employerOrgName) {
        this.employerOrgName = employerOrgName;
    }
    public String getIdr_OccupationCode() {
        return idr_OccupationCode;
    }
    public void setIdr_OccupationCode(String idr_OccupationCode) {
        this.idr_OccupationCode = idr_OccupationCode;
    }
    public String getOtherOccupationName() {
        return otherOccupationName;
    }
    public void setOtherOccupationName(String otherOccupationName) {
        this.otherOccupationName = otherOccupationName;
    }
    public String getGuardianName() {
        return guardianName;
    }
    public void setGuardianName(String guardianName) {
        this.guardianName = guardianName;
    }

    public String getTeleCom() {
        return teleCom;
    }

    public void setTeleCom(String teleCom) {
        this.teleCom = teleCom;
    }

    public String getOrgCountyCode() {
        return orgCountyCode;
    }

    public void setOrgCountyCode(String orgCountyCode) {
        this.orgCountyCode = orgCountyCode;
    }

    public String getOrgCode() {
        return orgCode;
    }

    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }

    public String getLivingAddressAttributionCode() {
        return livingAddressAttributionCode;
    }

    public void setLivingAddressAttributionCode(String livingAddressAttributionCode) {
        this.livingAddressAttributionCode = livingAddressAttributionCode;
    }

    public String getLivingAddressCode() {
        return livingAddressCode;
    }

    public void setLivingAddressCode(String livingAddressCode) {
        this.livingAddressCode = livingAddressCode;
    }

    public String getLivingAddressDetails() {
        return livingAddressDetails;
    }

    public void setLivingAddressDetails(String livingAddressDetails) {
        this.livingAddressDetails = livingAddressDetails;
    }

    public String getIdcardCode() {
        return idcardCode;
    }

    public void setIdcardCode(String idcardCode) {
        this.idcardCode = idcardCode;
    }
}
public class BaseInfoTest extends BaseTest {
    @Autowired
    Jaxb2Marshaller marshaller;
    @Test
    public void getCardID() throws JAXBException{
        BaseInfo baseInfo = new BaseInfo();
        baseInfo.setCardID("1");
        baseInfo.setPatientName("65");
        baseInfo.setBirthDate("99");
        baseInfo.setGenderCode("555");
        baseInfo.setNationCode("99");
        baseInfo.setEmployerOrgName("7878");
        baseInfo.setEmployerOrgName("987554");
        baseInfo.setIdr_OccupationCode("sdfdsf");
        //将javabean转换成xml(jaxb)
        JAXBContext context = JAXBContext.newInstance(Body.class);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
        StringWriter writer = new StringWriter();
        marshaller.marshal(baseInfo, writer);
        System.out.println(writer.toString());
    }
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BaseInfo>
<CardID>1</CardID>
<PatientName>65</PatientName>
<BirthDate>99</BirthDate>
<GenderCode>555</GenderCode>
<NationCode>99</NationCode>
<EmployerOrgName>987554</EmployerOrgName>
<IDR_OccupationCode>sdfdsf</IDR_OccupationCode>
</BaseInfo>

暂时我就接触这么多,还会后续补充的。
加油,我们是最棒的仙女。

加一段将xml转换成javabean的代码
public static void unmarshallerByJaxb(String path, Object object) {
    try {
        JAXBContext jc = JAXBContext.newInstance(object.getClass());
            
        Unmarshaller unmarshaller = jc.createUnmarshaller();
            
        File file = new File(path);
        if (!file.exists()) {
            throw new FileNotFoundException("Can not load xml file!");
        }
            
        unmarshaller.unmarshal(file);
    } catch (JAXBException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值