Dom4j的增删改查应用实例

package lianxi5;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class StudentDAODom4j {
Document doc=null;
SAXReader r = null;
Element root=null;
private String path;
public StudentDAODom4j(String path){
this.path=path;
try {
r = new SAXReader();
doc=r.read(new FileInputStream(path));
root=doc.getRootElement();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
@Override
public boolean addStudent(String name, String course, int score) {
int m=getMaxID();
Element stu=root.addElement("student");
stu.addAttribute("id",m+"");
Element tname=stu.addElement("name");
tname.setText(name);
Element tcourse=stu.addElement("course");
tcourse.setText(course);
Element tscore=stu.addElement("score");
tscore.setText(score+"");
return true;
}


@Override
public boolean deleteStudentById(int cid) {
List<Element> list =root.elements("student");
for (Element stu : list) {
int id=Integer.parseInt(stu.attributeValue("id"));
if(id==cid){
root.remove(stu);
System.out.println("删除成功!!");
return true;
}
}
System.out.println("删除失败!!");
return false;
}


@Override
public boolean exists(int cid) {
List<Element> list =root.elements("student");
for (Element stu : list) {
int id=Integer.parseInt(stu.attributeValue("id"));
if(id==cid){
System.out.println("你输入的ID已经存在!");
return true;
}
}
System.out.println("你输入的ID不存在!");
return false;
}


@Override
public int getMaxID() {
List<Element> list =root.elements("student");
int max=0;
for (Element stu : list) {
int i=Integer.parseInt(stu.attributeValue("id"));
if(i>max){
max=i;
}
}
return max+1;
}


@Override
public void showAllStudent() {
List<Element> list =root.elements("student");
System.out.println("编号"+"\t"+"姓名"+"\t"+"科目"+"\t"+"分数");
for (Element stu : list) {
List<Element> li=stu.elements();
System.out.print(stu.attributeValue("id")+"\t");
for (Element e : li) {
System.out.print(e.getText()+"\t");
}
System.out.println();
}

}


@Override
public boolean updateStudent(int cid, String name, String course, int score) {
List<Element> list =root.elements("student");
for (Element stu : list) {
int id=Integer.parseInt(stu.attributeValue("id"));
if(id==cid){
stu.addAttribute("id",cid+"");
Element tname=stu.element("name");
tname.setText(name);
Element tcourse=stu.element("course");
tcourse.setText(course);
Element tscore=stu.element("score");
tscore.setText(score+"");
System.out.println("修改成功");
return true;
}
}
return false;
}

public void save(){
FileOutputStream fos=null;
XMLWriter writer = null;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
        try {
writer =new XMLWriter(new FileOutputStream(path),format);
writer.write(doc);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}


}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值