JiBX笔记

##注意事项

1JiBX:1.2.2 (https://sourceforge.net/projects/jibx/files/jibx/jibx-1.2.2/) 2JDK:1.6 (http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html) 3ANT:1.9.12 (http://mirrors.shu.edu.cn/apache//ant/binaries/) 4

版本不一定要是以上的,但是其他的可能会报各种莫名其妙的错误

##重要步骤

###环境变量

###项目结构

###执行命令及变化 执行的目录:

ant compile bindgen

###另一种生成xml的方法 参考:http://www.voidcn.com/article/p-gdeaekhv-kw.html

  • 编译Java类文件,生成class文件

  • 进入class文件目录

  • 执行:

    java -cp E:\WORK\jibx_1_2_2\jibx\lib\jibx-tools.jar;bin org.jibx.binding.generator.BindGen Address

##一个简单的例子

其中jdk是1.6 lib是jibx的jar

1package com.xh.bean; 2 3public class Student { 4 private String name; 5 private String SNO; 6 private int classNO; 7 private int age; 8 9 public String getName() { 10 return name; 11 } 12 13 public void setName(String name) { 14 this.name = name; 15 } 16 17 public String getSNO() { 18 return SNO; 19 } 20 21 public void setSNO(String SNO) { 22 this.SNO = SNO; 23 } 24 25 public int getClassNO() { 26 return classNO; 27 } 28 29 public void setClassNO(int classNO) { 30 this.classNO = classNO; 31 } 32 33 public int getAge() { 34 return age; 35 } 36 37 public void setAge(int age) { 38 this.age = age; 39 } 40 41 @Override 42 public String toString() { 43 return "Student{" + 44 "name='" + name + '\'' + 45 ", SNO='" + SNO + '\'' + 46 ", classNO=" + classNO + 47 ", age=" + age + 48 '}'; 49 } 50} 51 52 53import com.xh.bean.Student; 54import org.jibx.runtime.BindingDirectory; 55import org.jibx.runtime.IBindingFactory; 56import org.jibx.runtime.IMarshallingContext; 57import org.jibx.runtime.JiBXException; 58 59import java.io.StringWriter; 60 61public class Main { 62 63 public static void main(String[] args) throws JiBXException { 64 Student student=new Student(); 65 student.setAge(12); 66 student.setClassNO(111); 67 student.setName("jon"); 68 student.setSNO("NO_ewewewj3413"); 69 70 IBindingFactory factory = BindingDirectory.getFactory(Student.class); 71 IMarshallingContext mctx= factory.createMarshallingContext(); 72 StringWriter sw=new StringWriter(); 73 mctx.setIndent(2); 74 mctx.marshalDocument(student, "UTF-8", null, sw); 75 System.out.printf(String.valueOf(sw)); 76 77 } 78} 79

如果直接运行测试类:

就会报错:

1Exception in thread "main" Unable to access binding information for class com.xh.bean.Student 2Make sure the binding has been compiled 3java.lang.NoSuchFieldException: JiBX_bindingList

###重要的步骤:

  • 编译项目 如果执行了测试,这一步可以跳过。

  • 进入编译后的class根目录:

  • 生成bind.xml,注意完整类名

    java -cp bin;D:\ide\jibx_1_2_2\jibx\lib\jibx-tools.jar org.jibx.binding.generator.BindGen -b bind.xml -s src com.xh.bean.Student

  • 绑定xml

    java -cp bin;D:\ide\jibx_1_2_2\jibx\lib\jibx-bind.jar org.jibx.binding.Compile -v bind.xml

再次运行测试:

1<?xml version="1.0" encoding="UTF-8"?> 2<student xmlns="http://xh.com/bean" classNO="111" age="12"> 3 <name>jon</name> 4 <SNO>NO_ewewewj3413</SNO> 5</student>

##相关资料

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

JiBX笔记 - HelloWorld