1.查询所有学生信息
public List<Student> findAll() {
// 获取document对象
document = Dom4jUtils.getDocument(Dom4jUtils.Stu_R_PATH);
// 获取根节点
Element root = document.getRootElement();
// 获取孩子节点
List<Element> list = root.elements("student");
// 创建集合
Student student = new Student();
// 遍历孩子节点
ArrayList<Student> students = new ArrayList<Student>();
for (Element element : list) {
student = new Student();
student.setSno(element.attributeValue("sno"));
student.setName(element.element("name").getText());
student.setSex(element.element("sex").getText());
student.setAge(Integer.parseInt(element.element("age").getText()));
student.setMathScore(Double.parseDouble(element.element("mathScore").getText()));
student.setJavaScore(Double.parseDouble(element.element("javaScore").getText()));
student.setEnglishScore(Double.parseDouble(element.element("englishScore").getText()));
students.add(student);
}
return students;
}
2.根据学生编号查询学生信息
public Student findById(String id) {
// 获取document对象
document = Dom4jUtils.getDocument(Dom4jUtils.Stu_R_PATH);
// 获取根节点
Element root = document.getRootElement();
// 获取子节点
List<Element> list = root.elements();
// 获取student对象
Student student = new Student();
// 遍历
for (Element element : list) {
// 获取节点文本值
String dId = element.attributeValue("sno");
// 验证id是否相等
if (dId.equals(id)){
student.setSno(element.attributeValue("sno"));
student.setName(element.element("name").getText());
student.setSex(element.element("sex").getText());
student.setAge(Integer.parseInt(element.element("age").getText()));
student.setMathScore(Double.parseDouble(element.element("mathScore").getText()));
student.setJavaScore(Double.parseDouble(element.element("javaScore").getText()));
student.setEnglishScore(Double.parseDouble(element.element("englishScore").getText()));
return student;
}
}
return null;
}
3.添加学生
public void add(Student student) {
// 获取document对象
document = Dom4jUtils.getDocument(Dom4jUtils.Stu_R_PATH);
// 获取根节点
Element root = document.getRootElement();
// 给节点root创建子节点
Element dStudent = root.addElement("student");
// 给节点dStudent创建子节点
dStudent.addElement("name").setText(student.getName());
dStudent.addElement("sex").setText(student.getSex());
dStudent.addElement("age").setText(student.getAge().toString());
dStudent.addElement("mathScore").setText(student.getMathScore().toString());
dStudent.addElement("javaScore").setText(student.getJavaScore().toString());
dStudent.addElement("englishScore").setText(student.getEnglishScore().toString());
// 给节点dStudent附上属性和属性值
dStudent.addAttribute("sno", student.getSno());
Dom4jUtils.saveXML(Dom4jUtils.Stu_W_PATH,document);
}
4.根据学生编号删除学生信息
public boolean deleteById(String id) {
// 获取document对象
document = Dom4jUtils.getDocument(Dom4jUtils.Stu_R_PATH);
try {
// 获取根节点
Element root = document.getRootElement();
// 获取子节点
List<Element> list = root.elements();
// 转换数据类型
int dId = Integer.parseInt(id);
// 获取对象索引
int i = Integer.parseInt(id.substring(3,4)) -1;
System.out.println(i);
for (Element element : list) {
// 遍历索引
String sno = element.attributeValue("sno");
// 判断id是否相等
if (sno.equals(id)){
list.get(i).detach();
// 更新并保存
Dom4jUtils.saveXML(Dom4jUtils.Stu_W_PATH, document);
return true;
}
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return false;
}
5.修改学生信息
public void update(Student student) {
// 获取document对象
document = Dom4jUtils.getDocument(Dom4jUtils.Stu_R_PATH);
// 获取根节点
Element root = document.getRootElement();
// 获取子节点
List<Element> list = root.elements();
// 获取student对象
Student dStudent = new Student();
// 遍历
for (Element element : list) {
// 获取节点文本值
String dId = element.attributeValue("sno");
// 验证id是否相等
if (dId.equals(student.getSno())){
element.addAttribute("sno",student.getSno());
element.element("name").setText(student.getName());
element.element("sex").setText(student.getSex());
element.element("age").setText(student.getAge().toString());
element.element("mathScore").setText(student.getMathScore().toString());
element.element("javaScore").setText(student.getJavaScore().toString());
element.element("englishScore").setText(student.getEnglishScore().toString());
Dom4jUtils.saveXML(Dom4jUtils.Stu_W_PATH,document);
}
}
}