用的是jdk自带的javax.xml.bind.JAXBContext将对象和xml字符串进行相互转换。
如果对要生成的 xml 格式有点些许的限制,就会对生成xml的对象就需要进行些许控制,控制对象的一个最可行的办法就是用注解。
比较常用的几个:
@XmlRootElement:根节点
@XmlAttribute:该属性作为xml的attribute
@XmlElement:该属性作为xml的element,且可以增加属性(name="NewElementName"),那么生成的xml串的elment的标签是NewElementName
示例:
- package test;
- import java.io.StringWriter;
- import javax.xml.bind.JAXBContext;
- import javax.xml.bind.JAXBException;
- import javax.xml.bind.Marshaller;
- import test.bean.EleClassA;
- import test.bean.EleClassB;
- import test.bean.RootClass;
- public class Test1 {
- public static void main(String[] args) {
- RootClass rc = new RootClass();
- EleClassA a = new EleClassA();
- EleClassB b = new EleClassB();
- a.setAttrC("attrc");
- a.setEleA("eleA");
- a.setEleB("eleB");
- b.setAttrPassword("attrPassword");
- b.setAttrUserName("attrUsrName");
- b.setEleCode("eleCode");
- rc.setA(a);
- rc.setB(b);
- rc.setRoot("root");
- rc.setRootA("rootA");
- JAXBContext context;
- try {
- context = JAXBContext.newInstance(RootClass.class);
- Marshaller mar = context.createMarshaller();
- mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
- mar.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
- StringWriter writer = new StringWriter();
- mar.marshal(rc, writer);
- System.out.println(writer.toString());
- } catch (JAXBException e) {
- e.printStackTrace();
- }
- }
- }
- package test.bean;
- import javax.xml.bind.annotation.XmlElement;
- import javax.xml.bind.annotation.XmlRootElement;
- @XmlRootElement(name="rootclass")
- public class RootClass {
- private EleClassA a;
- private EleClassB b;
- private String root;
- private String rootA;
- @XmlElement(name="eleClassA")
- public EleClassA getA() {
- return a;
- }
- public void setA(EleClassA a) {
- this.a = a;
- }
- @XmlElement(name="EleclassA")
- public EleClassB getB() {
- return b;
- }
- public void setB(EleClassB b) {
- this.b = b;
- }
- public String getRoot() {
- return root;
- }
- public void setRoot(String root) {
- this.root = root;
- }
- public String getRootA() {
- return rootA;
- }
- public void setRootA(String rootA) {
- this.rootA = rootA;
- }
- }
- package test.bean;
- import javax.xml.bind.annotation.XmlAttribute;
- import javax.xml.bind.annotation.XmlElement;
- public class EleClassA {
- private String eleA;
- private String eleB;
- private String attrC;
- @XmlElement
- public String getEleA() {
- return eleA;
- }
- public void setEleA(String eleA) {
- this.eleA = eleA;
- }
- @XmlElement(name="elebnewname")
- public String getEleB() {
- return eleB;
- }
- public void setEleB(String eleB) {
- this.eleB = eleB;
- }
- @XmlAttribute()
- public String getAttrC() {
- return attrC;
- }
- public void setAttrC(String attrC) {
- this.attrC = attrC;
- }
- }
- package test.bean;
- import javax.xml.bind.annotation.XmlAttribute;
- import javax.xml.bind.annotation.XmlElement;
- public class EleClassB {
- private String attrUserName;
- private String attrPassword;
- private String eleCode;
- @XmlAttribute
- public String getAttrUserName() {
- return attrUserName;
- }
- public void setAttrUserName(String attrUserName) {
- this.attrUserName = attrUserName;
- }
- @XmlAttribute(name="password")
- public String getAttrPassword() {
- return attrPassword;
- }
- public void setAttrPassword(String attrPassword) {
- this.attrPassword = attrPassword;
- }
- @XmlElement
- public String getEleCode() {
- return eleCode;
- }
- public void setEleCode(String eleCode) {
- this.eleCode = eleCode;
- }
- }
运行Test1类中main方法,执行结果:
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <rootclass>
- <eleClassA attrC="attrc">
- <eleA>eleA</eleA>
- <elebnewname>eleB</elebnewname>
- </eleClassA>
- <EleclassA attrUserName="attrUsrName" password="attrPassword">
- <eleCode>eleCode</eleCode>
- </EleclassA>
- <root>root</root>
- <rootA>rootA</rootA>
- </rootclass>
相关推荐
"mybatis xml文件自动生成"是开发过程中的一个重要环节,它可以帮助开发者提高效率,减少手动编写XML映射文件和对应的POJO(Plain Old Java Object)类的工作量。 MyBatis的Mapper文件是其核心组成部分之一,它包含...
同样地,若`@XmlAccessorType`的访问权限设置为`XmlAccessType.NONE`,则可以在私有属性上使用`@XmlElement`或`@XmlAttribute`注解,这些属性依然会被映射到生成的XML文件中。 在实际应用中,开发者应当根据实际...
在Spring Boot和MyBatis框架集成的开发过程中,自动化生成DAO层接口与对应的XML配置文件可以极大地提高开发效率。下面将详细介绍如何实现这一功能,并深入探讨相关知识点。 首先,Spring Boot是一个快速开发框架,...
"Xml文件自动生成C# Class类"这个主题就涉及到了这一过程。这里我们将详细探讨如何实现这一功能,以及它在实际开发中的应用。 首先,XML文件是一种基于文本的数据存储格式,具有良好的可读性和结构化特性。它可以...
JAXBContext 生成 XML 文件或 Java 类对象转换注解 JAXB(Java API for XML Binding)是一种将 Java 对象与 XML 进行转换的技术。JAXB 提供了一个快速便捷的方式将 Java 对象与 XML 进行转换。在 JAX-WS(Java 的 ...
Xstream通过使用注解提供了高度的灵活性,使得XML的生成和解析更加简单和直观。在这篇文章中,我们将深入探讨如何利用Xstream的注解来处理XML。 首先,要使用Xstream,我们需要在项目中引入其依赖。如果你使用的是...
- **敏捷开发**:暗示使用此工具可以帮助团队快速响应需求变化,符合敏捷开发的理念,因为代码生成自动化减少了重复工作,使得开发过程更加灵活高效。 在压缩包文件`mybatis_generator_code`中,可能包含了生成代码...
@XmlAccessorType 注解用于指定由 Java 对象生成 XML 文件时对 Java 对象属性的访问方式。它的属性值是 XmlAccessType 的 4 个枚举值:FIELD、PROPERTY、PUBLIC_MEMBER、NONE。 例如: ```java @XmlAccessorType...
本教程将详细介绍如何在Java环境中生成XML和XSD文件。 XML是一种标记语言,它允许我们在文档中定义元素、属性和结构。这些元素和属性描述了数据的含义和组织方式。例如,一个简单的XML文档可能如下所示: ```xml ...
Mybatis Generator是一款强大的工具,它能够自动生成Java实体类(Entity)、Mapper接口和XML配置文件,极大地提高了开发效率。在"Maven"环境下,我们可以轻松地集成这个插件,实现自动化代码生成,尤其对于处理带有...
标题中的“java-xml自动生成对象实体以及与xml相互转化”指的是使用Java技术将XML文件转换为Java对象(即Java Bean),反之亦然。这一过程通常涉及到以下几个关键知识点: 1. **Java DOM解析器**:DOM(Document ...
3. XML文件生成:在MyBatis中,SQL语句通常写在Mapper接口的XML配置文件中。generator-mybatis会自动生成这些XML文件,并根据表结构自动填充SQL模板,如插入、更新、删除和查询语句。XML配置文件与接口类相结合,...
本文将深入探讨如何在SpringBoot项目中整合MyBatis,并实现自动生成Mapper.xml文件、DAO接口以及对应的Model类。 首先,我们需要确保项目已经集成了SpringBoot和MyBatis的基础配置。这通常涉及以下步骤: 1. 添加...
在本项目中,"mybatis-plus自动生成代码(包含swaager注解)" 意味着我们将探讨如何利用 MyBatis-Plus 的代码生成器来创建实体类、Service、Mapper、XML 文件,并且这些生成的代码还将集成 Swagger 注解,以便于 API ...
java注解xml
首先,Java与XML的转化通常涉及两个主要步骤:解析XML文件生成Java对象和将Java对象转换成XML。这两个过程分别对应于XML解析器和对象到XML的序列化库。 1. XML解析器生成Java对象: 当我们需要从XML文件中提取数据...
《Java and XML(英文第三版)_java_xml_birdsolc_源码》是关于Java与XML集成编程的一本权威指南,特别适合于那些希望深入理解如何在Java应用程序中有效地使用XML技术的开发者。这本书详细阐述了Java平台上的XML处理...
7. **注解方式**:除了使用XML文件,Mybatis也支持在mapper.java文件中直接使用注解来定义SQL语句。这种方式更加简洁,但可能不适合大型项目,因为所有的SQL都会在Java代码中,影响代码的可读性。 8. **最佳实践**...
MyBatis Generator(MBG)是一款强大的工具,用于在Java环境下自动生成MyBatis的映射文件、DAO接口以及实体类。它极大地提高了开发效率,减少了手动编写这些基础代码的工作量,使开发者能够更专注于业务逻辑的实现。...
JAXB提供了一种自动的方式,通过注解或者绑定文件来定义Java类和XML元素之间的映射关系。一旦建立了这种映射,我们就可以使用`Unmarshaller`来将XML文档解析为Java对象,或使用`Marshaller`将Java对象序列化为XML...