基于xml的java通讯录_java servlet+xml开发联系人增删改查项目

package Dao;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

public class ContactOperatorImp implements ContactOperator {

public void addContact(Contact contact) {

// TODO Auto-generated method stub

try {

File file = new File("d:/contact.xml");

Document doc = null;

Element rootElem = null;

if (!file.exists()) {

doc = DocumentHelper.createDocument();

rootElem = doc.addElement("contactList");

} else {

doc = new SAXReader().read(file);

rootElem = doc.getRootElement();

}

Element contactElem = rootElem.addElement("contact");

contactElem.addAttribute("id", contact.getId());

contactElem.addElement("name").setText(contact.getName());

contactElem.addElement("gender").setText(contact.getGender());

contactElem.addElement("phone").setText(contact.getPhone());

contactElem.addElement("age").setText(contact.getAge());

contactElem.addElement("email").setText(contact.getEmail());

contactElem.addElement("qq").setText(contact.getQq());

FileOutputStream out = new FileOutputStream("d:/contact.xml");

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out, format);

writer.write(doc);

writer.close();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

}

public void updateContact(Contact contact) {

// TODO Auto-generated method stub

try {

Document doc = new SAXReader().read("d:/contact.xml");

Element contactEle = (Element) doc

.selectSingleNode("//contact[@id='" + contact.getId()

+ "']");

contactEle.element("name").setText(contact.getName());

contactEle.element("gender").setText(contact.getGender());

contactEle.element("phone").setText(contact.getPhone());

contactEle.element("age").setText(contact.getAge());

contactEle.element("email").setText(contact.getEmail());

contactEle.element("qq").setText(contact.getQq());

FileOutputStream out = new FileOutputStream("d:/contact.xml");

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out, format);

writer.write(doc);

writer.close();

} catch (Exception e) {

throw new RuntimeException();

}

}

public void deleteContact(String id) {

// TODO Auto-generated method stub

try {

Document doc = new SAXReader().read("d:/contact.xml");

Element el = (Element) doc.selectSingleNode("//contact[@id='" + id

+ "']");

el.detach();

FileOutputStream out = new FileOutputStream("d:/contact.xml");

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("utf-8");

XMLWriter writer = new XMLWriter(out, format);

writer.write(doc);

writer.close();

} catch (Exception e) {

throw new RuntimeException(e);

}

}

public List findAll() {

// TODO Auto-generated method stub

try {

Document doc = new SAXReader().read("d:/contact.xml");

List listc=new ArrayList();

List lists = (List) doc.selectNodes("//contact");

for(Element list:lists){

Contact contact=new Contact();

contact.setId(list.attributeValue("id"));

contact.setName(list.elementText("name"));

contact.setAge(list.elementText("age"));

contact.setEmail(list.elementText("email"));

contact.setGender(list.elementText("gender"));

contact.setPhone(list.elementText("phone"));

contact.setQq(list.elementText("qq"));

listc.add(contact);

}

return listc;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

public Contact findById(String id) {

Document doc = null;

try {

doc = new SAXReader().read("d:/contact.xml");

} catch (DocumentException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

Element e = (Element)doc.selectSingleNode("//contact[@id='"+id+"']");

Contact c = null;

if(e!=null){

//´´½¨COntact¶ÔÏó

c = new Contact();

c.setId(e.attributeValue("id"));

c.setName(e.elementText("name"));

c.setGender(e.elementText("gender"));

c.setAge(e.elementText("age"));

c.setPhone(e.elementText("phone"));

c.setEmail(e.elementText("email"));

c.setQq(e.elementText("qq"));

}

return c;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值