文档章节

jaxb实现xml与javaBean相互转换

肥猫钓鱼
 肥猫钓鱼
发布于 2014/11/17 17:23
字数 524
阅读 58
收藏 1
点赞 0
评论 0

一、jaxb是什么 JAXB是Java Architecture for XML Binding的缩写。可以将一个Java对象转变成为XML格式,反之亦然。 我们把对象与关系数据库之间的映射称为ORM,其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping)。原来JAXB是Java EE的一部分,在JDK1.6中,SUN将其放到了Java SE中,这也是SUN的一贯做法。JDK1.6中自带的这个JAXB版本是2.0,比起1.0(JSR 31)来,JAXB2(JSR 222)用JDK5的新特性Annotation来标识要作绑定的类和属性等,这就极大简化了开发的工作量。 二、jaxb应用模式 在JAVA EE 5\6中,jaxb可以很方便的与jax-rs、jax-ws集成,极大的简化了web service接口的开发工作量。

需要引入javax.xml.bind.jar,我是用myeclipse直接创建的web项目就不需要引入jar包,有自带的,所以建议创建web项目

一:从javabean到xml的转换 第一步:写一个简单的javabean package test.entity;

import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType;

@XmlType(name="test",propOrder={"id","name","pro"}) @XmlRootElement(name="Test") public class Test {

private String id;

private String name;

private String pro;

public String getId() {
	return id;
}
public void setId(String id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getPro() {
	return pro;
}
public void setPro(String pro) {
	this.pro = pro;
}

} 第二步: 把javabean转换成xml package testApp;

import java.io.StringWriter;

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller;

import test.entity.Test;

public class TestApp { public static void main(String[] args) throws JAXBException{ Test test = new Test(); test.setId("111"); test.setName("test"); test.setPro("pro"); JAXBContext context = JAXBContext.newInstance(Test.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");//编码格式 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 StringWriter writer = new StringWriter(); marshaller.marshal(test, writer); System.out.println(writer.toString()); } } 运行结果: 运行后输出的结果:

从xml到javabean的转换只需要写几句代码即可,把上面成生的xml字符串拷贝下来,如下: package testApp;

import java.io.ByteArrayInputStream;

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller;

import test.entity.Test;

public class XmlToJava {

/**
 * @param args
 * @throws JAXBException 
 */
public static void main(String[] args) throws JAXBException {
	String xml = "<Test><id>111</id><name>test</name><pro>pro</pro></Test>";
	Test test = null;
	JAXBContext context = JAXBContext.newInstance(Test.class);
	Unmarshaller unMa =  context.createUnmarshaller();
	test = (Test)unMa.unmarshal(new ByteArrayInputStream(xml.getBytes()));
	System.out.println(test.getId()+"\t"+test.getName()+"\t"+test.getPro());
	
}

} 运行结果: 结果如下

© 著作权归作者所有

共有 人打赏支持
肥猫钓鱼
粉丝 1
博文 29
码字总数 9287
作品 0
深圳
程序员
SpringMVC 中整合JSON、XML视图一

SpringMVC中整合了JSON、XML的视图,可以通过这些视图完成Java对象到XML、JSON的转换。转换XML提供了MarshallingView,开发者只需用注入相应的marshaller、和属性配置,即可自动完成Java的M...

ibm_hoojo ⋅ 2011/04/29 ⋅ 0

jaxb替换smooks项目方案建议书

1 前言 本文档是描述Smooks的应用情况,以及使用Jaxb替换smooks的可行性分析及实施方案,有不足之处还望谅解和指出。 2 背景 项目系统中使用Smooks出现几次死锁问题导致系统宕机,其后针对S...

WinnieChan ⋅ 2013/08/02 ⋅ 0

SpringMVC整合JSON、XML视图

原创不易,转载请注明出处:SpringMVC整合JSON、XML视图 代码下载地址:http://www.zuidaima.com/share/1751862737554432.htm SpringMVC中整合了JSON、XML的视图,可以通过这些视图完成Java对...

最代码 ⋅ 2014/04/16 ⋅ 0

IOC控制反转中的JAXB

Spring的核心的轻量级的容器是一个实现了IOC(Inversion Of Control)的容器,它是一个非侵入式性的框架,提供了一个aop(aspectoriented programming)的面向切面的概念实现方式。下面是一个...

小老傅 ⋅ 2013/10/25 ⋅ 0

使用 JAXB 框架定制 Web 服务行为

Web 服务概述 从本质上来讲 Web 服务就是对外暴露的并能够通过 Web 进行调用的一组 API,它并不要求服务提供方及调用方的技术实现、编程语言、运行平台甚至操作系统等。也正因为这个特点 We...

红薯 ⋅ 2010/03/24 ⋅ 1

Java处理XML的三种主流技术

大名鼎鼎的 DOM 说它大名鼎鼎可是一点不为过,DOM 是 W3C 处理 XML 的标准 API,它是许多其它与 XML 处理相关的标准的基础,不仅是 Java,其它诸如 Javascript,PHP,MS .NET 等等语言都实现...

e良师益友 ⋅ 2016/01/13 ⋅ 0

Spring mvc Restful

各位大虾们,我在学习Spring Restful 时遇到了一个小问题,希望各位能够帮忙解决,本人感激不尽! com.leag

learn_more ⋅ 2014/10/21 ⋅ 0

JAXB 解决XML与JavaBean的互换

JAXB 解决XML与JavaBean的互换 声明 版权所有,转载请注明出处 文章概要 基于JAXB2 的xml bean 转换工具 正文 运行环境 JDK,Dom4j JAXB 实现xml和javabean的编组和解组 测试用例:JavaBean 测试...

Cong_Cong ⋅ 2015/11/25 ⋅ 0

Jaxb解析XML转换为JavaBean忽略命名空间

先贴上代码 由于各种原因,很多特殊行业的自定义标准命名空间的URL访问不了,从而导致了Jaxb在将XML内容转换成JavaBean的时候,获取命名错误,而无法解析成功! 另一种情况,在XML中的节点属...

TerryZ ⋅ 2016/10/12 ⋅ 0

Java 中的 XML: 数据绑定,第 1 部分:代码生成方法 — JAXB 及其它

企业 Java 专家 Dennis Sosnoski 研究了几种 XML 数据绑定方法,这些方法根据用于 XML 文档的 W3C XML Schema 或 DTD 文法来生成代码。他从人们期待已久的 JAXB 标准(马上就要由 Java Commu...

JavaGG ⋅ 2009/05/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL主从复制原理、半同步操作步骤及原理

1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1、scp/sftp/nc 命令可以实现远程数据同步。 2、搭建ftp/http/svn/nfs 服务器,然后在客户端上也可以把数据同步到服务器。...

xiaomin0322 ⋅ 11分钟前 ⋅ 0

Oracle10g 数据及文件迁移过程[原]

QL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 11 10:22:35 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Re......

harrypotter ⋅ 16分钟前 ⋅ 0

nginx安装

1:安装工具包 wget、vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包 wget http://nginx.org/download/nginx-1......

壹丶贰 ⋅ 19分钟前 ⋅ 0

ideaVim安装及配置

1.安装插件 File-Settings-Plugins,Browse Repositories,输入ideavim,安装。 重启后,在Tools-Vim Emulator启用。 2.快捷键设置 ideaViim键与idea快捷键有冲突,可以在Settings-Other Se...

Funcy1122 ⋅ 24分钟前 ⋅ 0

MySQL中B+Tree索引原理

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B...

浮躁的码农 ⋅ 38分钟前 ⋅ 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 42分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 52分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 58分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 今天 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部