Castor javaBean 与 xml 映射

[url]http://redwave.iteye.com/blog/163913[/url]
[url]http://cache.baidu.com/c?m=9d78d513d99212ee1eb0d4690d6788355b16db3f69c3975521dbc90ed5264c40347bfefe62670704a4942f2647f2094bea876b32621e6ae8c5df883c82e8d06a74d47223706bdc074d8d&p=8e77d716d9c41bff57ea913a7f53&user=baidu&fm=sc&query=Castor+Mapping&qid=d267970c057eaf60&p1=1[/url]
Castor和数据库[url]http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7386c88c7150885ce178e320c051038bef970625559939c3d7a50f35416b5ae2b38200356fdc39bcc198ce8d36e72c821296459db0144dc48fc8a00788137902bfedf1bf0ccf32593df8d809d16089606127af1e7fb5f1765cd7880132693d08e49654861c9fa4413e829003ee95557b737ee9046797081e1dc2c5bb52ec71713&p=c3769a4386cc42ad42fcce655c52&user=baidu&fm=sc&query=Castor+%B0%D1+Mapping+%B7%C5%B5%BD%CA%FD%BE%DD%BF%E2%D6%D0&qid=85c908a405941d5b&p1=1[/url]
Mapping:[url]http://tech.ddvip.com/2009-01/1232391830106397_16.html[/url]

[url]http://bluelzx.iteye.com/?page=7&show_full=true[/url]
类型转换[url]http://wangrui.iteye.com/category/24492?show_full=true[/url]


package test;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Date;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
public class Test {
public static void main1(String[] args) {
David bean = new David();
bean.setAge(24);
bean.setName("David");
bean.setBorndate(new Date());
try {
// write it out as XML
File file = new File("D:/David.xml");
Writer writer = new FileWriter(file);
Marshaller.marshal(bean, writer);
// now restore the value and list what we get
Reader reader = new FileReader(file);
David read = (David) Unmarshaller.unmarshal(David.class, reader);
System.out.println("David: " + read.getName() + read.getBorndate()
+ read.getAge());
} catch (IOException ex) {
ex.printStackTrace(System.err);
} catch (MarshalException ex) {
ex.printStackTrace(System.err);
} catch (ValidationException ex) {
ex.printStackTrace(System.err);
}
}

public static void main(String[] args) throws MarshalException, ValidationException, IOException {
QQ qq = new QQ();
qq.setId(1);
qq.setName("QQ");
qq.setStrName("BB");

Marshaller.marshal(qq,new FileWriter("D:/QQ.xml"));
Reader reader = new FileReader("D:/QQ.xml");
QQ qq2 = (QQ) Unmarshaller.unmarshal(QQ.class,reader);
System.out.println("QQ2:"+qq2.getId()+"--"+qq2.getName()+"---"+qq2.getStrName());
reader.close();
}

}





public static void main(String[] args) {
QQ qq = new QQ();
qq.setId(1);
qq.setName("123");
qq.setStrName("abc");

try {
FileWriter writer =new FileWriter("D:/q.xml");
/*Marshaller.marshal(qq,new DocumentHandler() {
public void startElement(String name, AttributeList atts)
throws SAXException {
System.out.println("元素:"+name);
}

public void startDocument() throws SAXException {
System.out.println("开始解析");
}

public void setDocumentLocator(Locator locator) {
System.out.println("Locator");
}

public void processingInstruction(String target, String data)
throws SAXException {
System.out.println("processingInstrucion");
}

public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
System.out.println("ignorableWhitespace");
}

public void endElement(String name) throws SAXException {
System.out.println("end"+name);
}

public void endDocument() throws SAXException {
System.out.println("解析完毕");
}

public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println("---"+new String(ch,start,length));
}
});*/

Writer writer2 = new StringWriter();
Marshaller.marshal(qq,writer2);
System.out.println(writer2.toString());
} catch (Exception e) {
e.printStackTrace();
}
}



总结:
对象必须是javaBean,用集合测试是不可以


//通过Map 文件
public static void main(String[] args) {
//InputStream in = new ByteArrayInputStream(str.getBytes());
// InputSource inputSource = new InputSource(in);
QQ qq = new QQ();
qq.setId(1);
qq.setName("123");
try {
Mapping mapping =new Mapping();
mapping.loadMapping("D:/map.xml");
Writer writer = new FileWriter("D:/qq.xml");
Marshaller marshaller =new Marshaller(writer);
marshaller.setMapping(mapping);
marshaller.marshal(qq);


Reader reader = new FileReader("D:/qq.xml");
Unmarshaller unmarshaller =new Unmarshaller(mapping);
QQ qq1=(QQ) unmarshaller.unmarshal(QQ.class,reader);
System.out.println("id="+qq.getId()+"--"+qq.getName());

} catch (Exception e) {
e.printStackTrace();
}
}



<!DOCTYPE databases PUBLIC
"-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<description>Collection mapping example</description>
<class name="test.QQ" auto-complete="true">
<field name="id">
<bind-xml name="id" node="attribute"/>
</field>
<field name="name">
<bind-xml name="strName" node="attribute"/>
</field>
</class>

<class name="test.QQ" auto-complete="true">
<field name="id">
<bind-xml name="id" node="attribute"/>
</field>
<field name="name">
<bind-xml name="strName" node="attribute"/>
</field>
</class>
</mapping>


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值