`
thinkerAndThinker
  • 浏览: 285167 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 关于xml的注解,自动生成xml文件 - @XML

 
阅读更多

用的是jdk自带的javax.xml.bind.JAXBContext将对象和xml字符串进行相互转换。

       如果对要生成的 xml 格式有点些许的限制,就会对生成xml的对象就需要进行些许控制,控制对象的一个最可行的办法就是用注解。
 
       比较常用的几个:
       @XmlRootElement:根节点
       @XmlAttribute:该属性作为xml的attribute
       @XmlElement:该属性作为xml的element,且可以增加属性(name="NewElementName"),那么生成的xml串的elment的标签是NewElementName
 
        示例:    
       
[java] view plaincopy
 
  1. package test;  
  2.   
  3. import java.io.StringWriter;  
  4.   
  5. import javax.xml.bind.JAXBContext;  
  6. import javax.xml.bind.JAXBException;  
  7. import javax.xml.bind.Marshaller;  
  8.   
  9. import test.bean.EleClassA;  
  10. import test.bean.EleClassB;  
  11. import test.bean.RootClass;  
  12.   
  13. public class Test1 {  
  14.   
  15.     public static void main(String[] args) {  
  16.         RootClass rc = new RootClass();  
  17.         EleClassA a = new EleClassA();  
  18.         EleClassB b = new EleClassB();  
  19.           
  20.         a.setAttrC("attrc");  
  21.         a.setEleA("eleA");  
  22.         a.setEleB("eleB");  
  23.           
  24.         b.setAttrPassword("attrPassword");  
  25.         b.setAttrUserName("attrUsrName");  
  26.         b.setEleCode("eleCode");  
  27.           
  28.         rc.setA(a);  
  29.         rc.setB(b);  
  30.         rc.setRoot("root");  
  31.         rc.setRootA("rootA");  
  32.           
  33.           
  34.         JAXBContext context;  
  35.         try {  
  36.             context = JAXBContext.newInstance(RootClass.class);  
  37.             Marshaller mar = context.createMarshaller();  
  38.             mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  
  39.             mar.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");  
  40.               
  41.             StringWriter writer = new StringWriter();  
  42.               
  43.             mar.marshal(rc, writer);  
  44.               
  45.             System.out.println(writer.toString());  
  46.         } catch (JAXBException e) {  
  47.             e.printStackTrace();  
  48.         }  
  49.           
  50.     }  
  51. }  
  52.   
  53.   
  54. package test.bean;  
  55.   
  56. import javax.xml.bind.annotation.XmlElement;  
  57. import javax.xml.bind.annotation.XmlRootElement;  
  58.   
  59. @XmlRootElement(name="rootclass")  
  60. public class RootClass {  
  61.   
  62.     private EleClassA a;  
  63.     private EleClassB b;  
  64.     private String root;  
  65.     private String rootA;  
  66.       
  67.     @XmlElement(name="eleClassA")  
  68.     public EleClassA getA() {  
  69.         return a;  
  70.     }  
  71.     public void setA(EleClassA a) {  
  72.         this.a = a;  
  73.     }  
  74.     @XmlElement(name="EleclassA")  
  75.     public EleClassB getB() {  
  76.         return b;  
  77.     }  
  78.     public void setB(EleClassB b) {  
  79.         this.b = b;  
  80.     }  
  81.     public String getRoot() {  
  82.         return root;  
  83.     }  
  84.     public void setRoot(String root) {  
  85.         this.root = root;  
  86.     }  
  87.     public String getRootA() {  
  88.         return rootA;  
  89.     }  
  90.     public void setRootA(String rootA) {  
  91.         this.rootA = rootA;  
  92.     }  
  93.       
  94. }  
  95.   
  96.   
  97. package test.bean;  
  98.   
  99. import javax.xml.bind.annotation.XmlAttribute;  
  100. import javax.xml.bind.annotation.XmlElement;  
  101.   
  102. public class EleClassA {  
  103.   
  104.     private String eleA;  
  105.     private String eleB;  
  106.       
  107.     private String attrC;  
  108.   
  109.     @XmlElement  
  110.     public String getEleA() {  
  111.         return eleA;  
  112.     }  
  113.   
  114.     public void setEleA(String eleA) {  
  115.         this.eleA = eleA;  
  116.     }  
  117.   
  118.     @XmlElement(name="elebnewname")  
  119.     public String getEleB() {  
  120.         return eleB;  
  121.     }  
  122.   
  123.     public void setEleB(String eleB) {  
  124.         this.eleB = eleB;  
  125.     }  
  126.   
  127.     @XmlAttribute()  
  128.     public String getAttrC() {  
  129.         return attrC;  
  130.     }  
  131.   
  132.     public void setAttrC(String attrC) {  
  133.         this.attrC = attrC;  
  134.     }  
  135.       
  136. }  
  137.   
  138.   
  139. package test.bean;  
  140.   
  141. import javax.xml.bind.annotation.XmlAttribute;  
  142. import javax.xml.bind.annotation.XmlElement;  
  143.   
  144. public class EleClassB {  
  145.   
  146.     private String attrUserName;  
  147.     private String attrPassword;  
  148.       
  149.     private String eleCode;  
  150.       
  151.     @XmlAttribute  
  152.     public String getAttrUserName() {  
  153.         return attrUserName;  
  154.     }  
  155.     public void setAttrUserName(String attrUserName) {  
  156.         this.attrUserName = attrUserName;  
  157.     }  
  158.     @XmlAttribute(name="password")  
  159.     public String getAttrPassword() {  
  160.         return attrPassword;  
  161.     }  
  162.     public void setAttrPassword(String attrPassword) {  
  163.         this.attrPassword = attrPassword;  
  164.     }  
  165.     @XmlElement  
  166.     public String getEleCode() {  
  167.         return eleCode;  
  168.     }  
  169.     public void setEleCode(String eleCode) {  
  170.         this.eleCode = eleCode;  
  171.     }  
  172.       
  173.       
  174. }  

运行Test1类中main方法,执行结果:
[html] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
  2. <rootclass>  
  3.     <eleClassA attrC="attrc">  
  4.         <eleA>eleA</eleA>  
  5.         <elebnewname>eleB</elebnewname>  
  6.     </eleClassA>  
  7.     <EleclassA attrUserName="attrUsrName" password="attrPassword">  
  8.         <eleCode>eleCode</eleCode>  
  9.     </EleclassA>  
  10.     <root>root</root>  
  11.     <rootA>rootA</rootA>  
  12. </rootclass>  
分享到:
评论

相关推荐

    mybatis xml文件自动生成

    "mybatis xml文件自动生成"是开发过程中的一个重要环节,它可以帮助开发者提高效率,减少手动编写XML映射文件和对应的POJO(Plain Old Java Object)类的工作量。 MyBatis的Mapper文件是其核心组成部分之一,它包含...

    Java解析和生成XML.pdf

    同样地,若`@XmlAccessorType`的访问权限设置为`XmlAccessType.NONE`,则可以在私有属性上使用`@XmlElement`或`@XmlAttribute`注解,这些属性依然会被映射到生成的XML文件中。 在实际应用中,开发者应当根据实际...

    springboot+mybatis(mybatis dao与xml文件自动生成)

    在Spring Boot和MyBatis框架集成的开发过程中,自动化生成DAO层接口与对应的XML配置文件可以极大地提高开发效率。下面将详细介绍如何实现这一功能,并深入探讨相关知识点。 首先,Spring Boot是一个快速开发框架,...

    Xml文件自动生成C# Class类

    "Xml文件自动生成C# Class类"这个主题就涉及到了这一过程。这里我们将详细探讨如何实现这一功能,以及它在实际开发中的应用。 首先,XML文件是一种基于文本的数据存储格式,具有良好的可读性和结构化特性。它可以...

    JaxbContext生成xml文件或java类对象转化注解

    JAXBContext 生成 XML 文件或 Java 类对象转换注解 JAXB(Java API for XML Binding)是一种将 Java 对象与 XML 进行转换的技术。JAXB 提供了一个快速便捷的方式将 Java 对象与 XML 进行转换。在 JAX-WS(Java 的 ...

    java 利用Xstream注解生成和解析xml

    Xstream通过使用注解提供了高度的灵活性,使得XML的生成和解析更加简单和直观。在这篇文章中,我们将深入探讨如何利用Xstream的注解来处理XML。 首先,要使用Xstream,我们需要在项目中引入其依赖。如果你使用的是...

    代码自动生成 mybatis+mysql8.0 实体映射xml类生成工具

    - **敏捷开发**:暗示使用此工具可以帮助团队快速响应需求变化,符合敏捷开发的理念,因为代码生成自动化减少了重复工作,使得开发过程更加灵活高效。 在压缩包文件`mybatis_generator_code`中,可能包含了生成代码...

    JAXB-XML注解

    @XmlAccessorType 注解用于指定由 Java 对象生成 XML 文件时对 Java 对象属性的访问方式。它的属性值是 XmlAccessType 的 4 个枚举值:FIELD、PROPERTY、PUBLIC_MEMBER、NONE。 例如: ```java @XmlAccessorType...

    java生成xsd,xml示例

    本教程将详细介绍如何在Java环境中生成XML和XSD文件。 XML是一种标记语言,它允许我们在文档中定义元素、属性和结构。这些元素和属性描述了数据的含义和组织方式。例如,一个简单的XML文档可能如下所示: ```xml ...

    Mybatis Generator自动生成JavaEntity带中文注释和注解[Maven]工程

    Mybatis Generator是一款强大的工具,它能够自动生成Java实体类(Entity)、Mapper接口和XML配置文件,极大地提高了开发效率。在"Maven"环境下,我们可以轻松地集成这个插件,实现自动化代码生成,尤其对于处理带有...

    java-xml自动生成对象实体以及与xml相互转化.zip_Java doc转xml_java xml 转 实体_java 毕

    标题中的“java-xml自动生成对象实体以及与xml相互转化”指的是使用Java技术将XML文件转换为Java对象(即Java Bean),反之亦然。这一过程通常涉及到以下几个关键知识点: 1. **Java DOM解析器**:DOM(Document ...

    generator-mybatis接口类、实体类、xml文件生成工具

    3. XML文件生成:在MyBatis中,SQL语句通常写在Mapper接口的XML配置文件中。generator-mybatis会自动生成这些XML文件,并根据表结构自动填充SQL模板,如插入、更新、删除和查询语句。XML配置文件与接口类相结合,...

    mybatis自动生成mapper.xml文件

    本文将深入探讨如何在SpringBoot项目中整合MyBatis,并实现自动生成Mapper.xml文件、DAO接口以及对应的Model类。 首先,我们需要确保项目已经集成了SpringBoot和MyBatis的基础配置。这通常涉及以下步骤: 1. 添加...

    mybatis-plus自动生成代码(包含swaager注解)

    在本项目中,"mybatis-plus自动生成代码(包含swaager注解)" 意味着我们将探讨如何利用 MyBatis-Plus 的代码生成器来创建实体类、Service、Mapper、XML 文件,并且这些生成的代码还将集成 Swagger 注解,以便于 API ...

    java注解xml

    java注解xml

    java-xml相互转化

    首先,Java与XML的转化通常涉及两个主要步骤:解析XML文件生成Java对象和将Java对象转换成XML。这两个过程分别对应于XML解析器和对象到XML的序列化库。 1. XML解析器生成Java对象: 当我们需要从XML文件中提取数据...

    Java and XML(英文第三版)_java_xml_birdsolc_源码

    《Java and XML(英文第三版)_java_xml_birdsolc_源码》是关于Java与XML集成编程的一本权威指南,特别适合于那些希望深入理解如何在Java应用程序中有效地使用XML技术的开发者。这本书详细阐述了Java平台上的XML处理...

    用java程序生成mybatis的mapper.xml和mapper.java文件

    7. **注解方式**:除了使用XML文件,Mybatis也支持在mapper.java文件中直接使用注解来定义SQL语句。这种方式更加简洁,但可能不适合大型项目,因为所有的SQL都会在Java代码中,影响代码的可读性。 8. **最佳实践**...

    mybatis-generator插件 自动生成代码和注解

    MyBatis Generator(MBG)是一款强大的工具,用于在Java环境下自动生成MyBatis的映射文件、DAO接口以及实体类。它极大地提高了开发效率,减少了手动编写这些基础代码的工作量,使开发者能够更专注于业务逻辑的实现。...

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    JAXB提供了一种自动的方式,通过注解或者绑定文件来定义Java类和XML元素之间的映射关系。一旦建立了这种映射,我们就可以使用`Unmarshaller`来将XML文档解析为Java对象,或使用`Marshaller`将Java对象序列化为XML...

Global site tag (gtag.js) - Google Analytics