XML 与 JAVA 类映射 JAXB

本文介绍了JAXB的工作原理,包括XML与Java类映射的概念,展示了如何使用JAXB进行Java对象到XML的marshal过程以及XML到Java对象的unmarshal过程。通过注解和代码实例详细解释了转换的实现,还探讨了嵌套数据结构的转换方法。
摘要由CSDN通过智能技术生成

回到首页☞

JDK自带的两种API是很难用的,想要提取想要的数据,需要写大量的代码。

1 什么是XML与Java类映射

XML很多元素,然后是值,而JavaBean也有很多属性。把这些属性对应起来,就叫做映射。
Hibernate就是一种Java 到数据库的映射框架。

2 JAXB的工作原理

与HIbernate映射类似,JAXB映射主要由4部分构成:

  • schema
  • JAXB
  • XML文档
  • Java对象
    在这里插入图片描述

对比Hibernate映射来说:

  • Schema 可以看做是数据库中的表结构。
  • Document-XML文档是表中一条条记录
  • JAXB 可以看做是Hibernate 提供Schema 到Java 对象的映射。

转换是双向的:

  • marshal Java 对象转换XML 的过程。
  • unmarshal XML转换 Java对象的过程
    是不是有什么想法,传统的MVC 框架以XML配置看起来高大上,然后是各种配置眼花缭乱。
    Springboot等微服务却把XML干掉了,却玩的很好 ,因为config不一定要用XML。

3 marshal :Java 对象转换成XML

目前映射除了编写映射文件,还可以使用注解(定好的接口,类加载的时候会优先扫描注解)

3.1 定义一个JavaBean

package com.wht.demo.xml;

import javax.xml.bind.annotation.XmlRootElement;

/**
 * 简单的定义一个主机
 * @author JDIT
 */
@XmlRootElement
public class NodeHost {
   
  private String hostName;
  private String ip;

  public String getHostName() {
   
    return hostName;
  }

  public void setHostName(String hostName) {
   
    this.hostName = hostName;
  }

  public String getIp() {
   
    return ip;
  }

  public void setIp(String ip) {
   
    this.ip = ip;
  }
}

@XmlRootElement 这个注解很特殊,指定这个元素为根元素,一旦类标注了根元素,那么这个类的所有属性,默认映射为根元素的子元素。

3.2 测试类

package com.wht.demo.xml;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.File;

/**
 * 测试类
 * @author JDIT
 */
public class XMLTest {
   
  public static void main(String[] args) {
   
    File xmlFile = new File("D:\\test.xml");
    JAXBContext context;
    try {
   
      context = JAXBContext.newInstance(NodeHost.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值