资源简介
这是一个基于XML操作的学生信息管理小系统,实现了对学生信息的录入,查找,删除等操作。可以说是一个简易的“数据库”综合小应用!
代码片段和文件信息
package dao;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import utils.xmlUtils;
import domain.Student;
public class StudentDao {
/**
* 添加学生信息模块
* @param student
*/
public void add(Student student) {
try {
Document document = xmlUtils.getDocument();
Element student_node = document.createElement(“student“);
student_node.setAttribute(“examid“ student.getExamid());
student_node.setAttribute(“idcard“ student.getIdcard());
Element name = document.createElement(“name“);
name.setTextContent(student.getName());
Element location = document.createElement(“location“);
location.setTextContent(student.getLocation());
Element grade = document.createElement(“grade“);
// 这里是一个类型转换的隐藏之处。不太明显但是却十分的重要
grade.setTextContent(student.getGrade() + ““);
// 将新生成的三个子节点插入到student标签内
student_node.appendChild(name);
student_node.appendChild(location);
student_node.appendChild(grade);
// 对总的xml文档中添加一个学生信息
document.getElementsByTagName(“exam“).item(0)
.appendChild(student_node);
//将内存中的操作对象写回到xml文件,真正实现对文件的操作
xmlUtils.write2xml(document);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
public void delete(String name) {
try {
Document document = xmlUtils.getDocument();
NodeList name_node_list = document.getElementsByTagName(“name“);
for (int i = 0; i < name_node_list.getLength(); i++) {
if (name_node_list.item(i).getTextContent().equals(name)) {
Element person_node = (Element) name_node_list.item(i)
.getParentNode();
Element exam_node = (Element) person_node.getParentNode();
exam_node.removeChild(person_node);
//不要忘记将操作过的数据写回,否则原信息是不会发生变化的
xmlUtils.write2xml(document);
System.out.println(“恭喜,学生信息删除成功!“);
}
}
} catch (Exception e) {
System.out.println(“对不起,删除操作未成功完成!请重试!“);
throw new RuntimeException(e);
}
}
/**
* 给定学生的考号查找该同学的详细的信息(不用姓名的原因是姓名具有不唯一性)
* @param examid
* @return
*/
public Student find(String examid) {
Student student=null;
try {
Document document = xmlUtils.getDocument();
NodeList examid_node_list = document.getElementsByTagName(“student“);
//查找准考证号与查找值相一致的学生节点
for(int i=0; i Element examid_element = (Element) examid_node_list.item(i);
if(examid_element.getAttribute(“examid“).equals(examid.toString().trim())){
//采用非递归的方式获取student的详细信息
student = getStudentInfo(examid_element);
return student;
}else{
continue;
}
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(“对不起,未能正确的找到您要查找的学生的姓名!请确认后重新尝试!“);
}
return student;
}
/**
* 给定一个节点,采用非递归的方式遍历该学生节点的详细的信息
* 缺点:不能很好地复用代码,代码维护性较差
*/
public Student getStudentInfo(Element node){
Student studen
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2016-01-20 15:39 StudentSystem\.classpath
文件 389 2016-01-20 15:39 StudentSystem\.project
文件 598 2016-01-20 15:39 StudentSystem\.settings\org.eclipse.jdt.core.prefs
文件 4343 2016-01-20 19:52 StudentSystem\bin\dao\StudentDao.class
文件 1282 2016-01-20 15:47 StudentSystem\bin\domain\Student.class
文件 604 2016-01-20 20:04 StudentSystem\bin\Student.xm
文件 1806 2016-01-20 16:32 StudentSystem\bin\utils\xm
文件 3173 2016-01-20 17:51 StudentSystem\bin\view\Main.class
文件 4174 2016-01-20 19:52 StudentSystem\src\dao\StudentDao.java
文件 776 2016-01-20 15:47 StudentSystem\src\domain\Student.java
文件 604 2016-01-20 20:04 StudentSystem\src\Student.xm
文件 1130 2016-01-20 16:32 StudentSystem\src\utils\xm
文件 2496 2016-01-20 17:51 StudentSystem\src\view\Main.java
目录 0 2016-01-20 15:47 StudentSystem\bin\dao
目录 0 2016-01-20 15:41 StudentSystem\bin\domain
目录 0 2016-01-20 15:51 StudentSystem\bin\utils
目录 0 2016-01-20 16:12 StudentSystem\bin\view
目录 0 2016-01-20 15:47 StudentSystem\src\dao
目录 0 2016-01-20 15:41 StudentSystem\src\domain
目录 0 2016-01-20 15:51 StudentSystem\src\utils
目录 0 2016-01-20 16:12 StudentSystem\src\view
目录 0 2016-01-20 15:39 StudentSystem\.settings
目录 0 2016-01-20 20:05 StudentSystem\bin
目录 0 2016-01-20 18:05 StudentSystem\src
目录 0 2016-01-20 15:39 StudentSystem
----------- --------- ---------- ----- ----
21676 25
相关资源
- J2EE 配置文件
-
开源tinyxm
l - 常用编码(UnicodeUTF-8GBK)转换工具
-
图片和xm
l格式互换 -
xm
l多个文件合并(delphi) -
xm
l课件及例题(xm l) -
《xm
l编程原理与实例教程》电子教 -
将数据库的表生成xm
l文件 -
简单的xm
l投票系统 -
notepad++包含xm
l tools等插件 -
Volley获取json和xm
l数据解析显示 -
李刚疯狂xm
l讲义第2版完整源码 -
maven settings.xm
l 直接使用 - Unity3D 实战视频教程 保卫萝卜 2D 游戏
-
Notepad++的xm
l格式化工具xm ltools_2 -
Notepad++的xm
l Tools插件格式化xm l文 -
map/list集合转化成xm
l字符串 xm l字 -
libxm
l2-2.9.4-rc2.tar.gz - antisamy策略文件
- 在线教学系统微信小程序
-
Tinyxm
l库文件 -
优秀xm
l程序设计(学生信息管理) - protobuf-2.4.1.zip
-
svnmaven xm
l Schema等程序员必备.7z -
xm
l基础教程-耿祥义 清华出版社 -
xm
l基础教程 第二版 PDF -
一个xm
l项目源代码 - 订单管理系统SSH框架
-
xm
l基础教程与实验指导课件PPT+源代 -
xm
l基础教程第2版教学课件
评论
共有 条评论