accountpersist.docx
- 文档编号:12904123
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:16
- 大小:36.45KB
accountpersist.docx
《accountpersist.docx》由会员分享,可在线阅读,更多相关《accountpersist.docx(16页珍藏版)》请在冰豆网上搜索。
accountpersist
目的是在maven中使用dom4j对数据进行持久化项目整体展示
Account.java如下
packagecom.juven.mvnbook.account.persist;
publicclassAccount{
privateStringid;
privateStringname;
privateStringemail;
privateStringpassword;
privatebooleanactivated;
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetEmail(){
returnemail;
}
publicvoidsetEmail(Stringemail){
this.email=email;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicbooleanisActivated(){
returnactivated;
}
publicvoidsetActivated(booleanactivated){
this.activated=activated;
}
}
AccountPersistException.java如下
packagecom.juven.mvnbook.account.persist;
importjava.io.IOException;
importorg.dom4j.DocumentException;
publicclassAccountPersistExceptionextendsException{
/**
*
*/
privatestaticfinallongserialVersionUID=-3877347144246585617L;
publicAccountPersistException(Stringstring,DocumentExceptione){
//TODOAuto-generatedconstructorstub
}
publicAccountPersistException(Stringstring,IOExceptione){
//TODOAuto-generatedconstructorstub
}
}
AccountPersistService.java如下
packagecom.juven.mvnbook.account.persist;
importjava.io.IOException;
publicinterfaceAccountPersistService{
voidcreateAccount(Accountaccount)throwsAccountPersistException,IOException;
AccountreadAccount(Stringid)throwsAccountPersistException;
AccountupdateAccount(Accountaccount)throwsAccountPersistException;
voiddeleteAccount(Stringid)throwsAccountPersistException;
}
AccountPersistServiceImpl.java如下
packagecom.juven.mvnbook.account.persist;
importjava.io.FileWriter;
importjava.io.IOException;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.XMLWriter;
publicclassAccountPersistServiceImplimplementsAccountPersistService{
privateDocumentcreateDocument()throwsAccountPersistException{
Documentdocument=DocumentHelper.createDocument();
Elementroot=document.addElement("root");
Elementauthor1=root.addElement("author")
.addAttribute("name","James").addAttribute("location","UK")
.addText("JamesStrachan");
Elementauthor2=root.addElement("author").addAttribute("name","Bob")
.addAttribute("location","US").addText("BobMcWhirter");
returndocument;
}
privatevoidwrite(Documentdocument)throwsIOException{
//letswritetoafile
XMLWriterwriter=newXMLWriter(newFileWriter(
"target/test-classes/persist-data.xml"));
writer.write(document);
writer.close();
//PrettyprintthedocumenttoSystem.out
OutputFormatformat=OutputFormat.createPrettyPrint();
writer=newXMLWriter(System.out,format);
writer.write(document);
//CompactformattoSystem.out
format=OutputFormat.createCompactFormat();
writer=newXMLWriter(System.out,format);
writer.write(document);
}
publicvoidcreateAccount(Accountaccount)throwsAccountPersistException,
IOException{
newAccountPersistServiceImpl().write(newAccountPersistServiceImpl()
.createDocument());
}
publicAccountreadAccount(Stringid)throwsAccountPersistException{
returnnull;
}
publicAccountupdateAccount(Accountaccount)
throwsAccountPersistException{
//TODOAuto-generatedmethodstub
returnnull;
}
publicvoiddeleteAccount(Stringid)throwsAccountPersistException{
//TODOAuto-generatedmethodstub
}
}
account-persist.xml如下
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance"xmlns: aop="http: //www.springframework.org/schema/aop" xsi: schemaLocation="http: //www.springframework.org/schema/beanshttp: //www.springframework.org/schema/beans/spring-beans-2.5.xsd http: //www.springframework.org/schema/aophttp: //www.springframework.org/schema/aop/spring-aop-2.5.xsd"> class="com.juven.mvnbook.account.persist.AccountPersistServiceImpl"> AccountPersistServiceTest.java文件如下 importjava.io.File; importjava.io.IOException; importorg.junit.Test; importorg.springframework.context.ApplicationContext; importorg.springframework.context.support.ClassPathXmlApplicationContext; importcom.juven.mvnbook.account.persist.Account; importcom.juven.mvnbook.account.persist.AccountPersistException; importcom.juven.mvnbook.account.persist.AccountPersistService; publicclassAccountPersistServiceTest{ privateAccountPersistServiceservice; @Test publicvoidpersistTest()throwsAccountPersistException,IOException{ FilepersistDataFile=newFile("target/test-classes/persist-data.xml"); if(persistDataFile.exists()){ persistDataFile.delete(); } ApplicationContextctx=newClassPathXmlApplicationContext( "account-persist.xml"); service=(AccountPersistService)ctx.getBean("accountPersistService"); Accountaccount=newAccount(); account.setId("007"); account.setName("zhenghui"); account.setPassword("123456789"); account.setActivated(true); service.createAccount(account); } } 注意: 一开始的,先了解下dom4j是怎么工作的,可以到官网 CreatinganewXMLdocument Oftenindom4jyouwillneedtocreateanewdocumentfromscratch.Here'sanexampleofdoingthat. importorg.dom4j.Document; importorg.dom4j.DocumentHelper; importorg.dom4j.Element; publicclassFoo{ publicDocumentcreateDocument(){ Documentdocument=DocumentHelper.createDocument(); Elementroot=document.addElement("root"); Elementauthor1=root.addElement("author") .addAttribute("name","James") .addAttribute("location","UK") .addText("JamesStrachan"); Elementauthor2=root.addElement("author") .addAttribute("name","Bob") .addAttribute("location","US") .addText("BobMcWhirter"); returndocument; } } Writingadocumenttoafile AquickandeasywaytowriteaDocument(oranyNode)toaWriterisviathewrite()method. FileWriterout=newFileWriter("foo.xml"); document.write(out); Ifyouwanttobeabletochangetheformatoftheoutput,suchasprettyprintingoracompactformat,oryouwanttobeabletoworkwithWriterobjectsorOutputStreamobjectsasthedestination,thenyoucanusetheXMLWriterclass. importorg.dom4j.Document; importorg.dom4j.io.OutputFormat; importorg.dom4j.io.XMLWriter; publicclassFoo{ publicvoidwrite(Documentdocument)throwsIOException{ //letswritetoafile XMLWriterwriter=newXMLWriter( newFileWriter("output.xml") ); writer.write(document); writer.close(); //PrettyprintthedocumenttoSystem.out OutputFormatformat=OutputFormat.createPrettyPrint(); writer=newXMLWriter(System.out,format); writer.write(document); //CompactformattoSystem.out format=OutputFormat.createCompactFormat(); writer=newXMLWriter(System.out,format); writer.write(document); } } copy改是一件比较简单而且很愉快的事情。 可以发现,我基本将官网的东西塞到我的方法里面去了。 mvncleantest后 我如期看到了文件persist-data.xml xmlversion="1.0"encoding="UTF-8"? > xmlversion="1.0"encoding="UTF-8"? > 好,官网的方法果然没问题,现在就到将我们的account塞进去了。 privateDocumentcreateDocument(Accountaccount) throwsAccountPersistException{ Documentdocument=DocumentHelper.createDocument(); Elementroot=document.addElement("root"); Elementauthor1=root.addElement("account") .addAttribute("id",account.getId()) .addAttribute("name",account.getName()) .addAttribute("password",account.getPassword()) .addAttribute("email",account.getEmail()) .addText("JamesStrachan"); returndocument; } publicvoidcreateAccount(Accountaccount)throwsAccountPersistException, IOException{ newAccountPersistServiceImpl().write(newAccountPersistServiceImpl() .createDocument(account)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- accountpersist