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();
}
}
}
}
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();
}
}
}
}