JAXB技术简介:Java对象与XML之间的映射
174 浏览量
更新于2024-09-02
收藏 64KB PDF 举报
JAXB简介
JAXB(Java Architecture for XML Binding)是一种基于Java的XML数据绑定技术,用于将Java对象转换为XML格式,反之亦然。它是JavaEE的一部分,但在JDK 1.6中被移到JavaSE中。
JAXB是什么
JAXB是Java Architecture for XML Binding的缩写,旨在将Java对象与XML之间建立映射关系。这种映射关系可以被称为OXM(Object-XML Mapping),类似于ORM(Object-Relational Mapping)将Java对象与关系数据库之间建立映射关系。
JAXB的发展历程
JAXB最初是JavaEE的一部分,但在JDK 1.6中被移到JavaSE中,这是SUN的一贯做法。在JDK 1.6中,JAXB的版本是2.0,相比于1.0(JSR31),JAXB 2.0使用JDK 5的新特性Annotation来标识要绑定的类和属性等,这极大地简化了开发工作量。
JAXB的应用模式
JAXB可以与JAX-RS、JAX-WS集成,极大地简化了Web服务接口的开发工作量。在JAVAEE 5/6中,JAXB可以很方便地与JAX-RS、JAX-WS集成。
JAXB代码举例
下面是一个简单的JAXB代码示例,用于演示如何使用JAXB将Java对象转换为XML格式:
首先,定义两个示例类`ClassA`和`ClassB`:
```java
package com.bjpowernode.test;
public class ClassA {
private int classAId;
private String classAName;
private ClassB classB;
public int getClassAId() {
return classAId;
}
public void setClassAId(int classAId) {
this.classAId = classAId;
}
public String getClassAName() {
return classAName;
}
public void setClassAName(String classAName) {
this.classAName = classAName;
}
public ClassB getClassB() {
return classB;
}
public void setClassB(ClassB classB) {
this.classB = classB;
}
}
package com.bjpowernode.test;
public class ClassB {
private int classBId;
public int getClassBId() {
return classBId;
}
public void setClassBId(int classBId) {
this.classBId = classBId;
}
}
```
然后,使用JAXB将`ClassA`对象转换为XML格式:
```java
Marshaller marshaller = JAXBContext.newInstance(ClassA.class).createMarshaller();
ClassA classA = new ClassA();
classA.setClassAId(1);
classA.setClassAName("ClassA");
ClassB classB = new ClassB();
classB.setClassBId(2);
classA.setClassB(classB);
marshaller.marshal(classA, System.out);
```
输出结果:
```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<classA>
<classAId>1</classAId>
<classAName>ClassA</classAName>
<classB>
<classBId>2</classBId>
</classB>
</classA>
```
这个示例演示了如何使用JAXB将Java对象转换为XML格式。
2020-08-29 上传
2022-09-19 上传
2010-11-27 上传
2022-09-21 上传
2022-09-21 上传
2024-04-23 上传
2019-03-28 上传
2022-09-20 上传
2022-09-21 上传
weixin_38746818
- 粉丝: 7
- 资源: 910