资源简介
这是一个基于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
相关资源
-
实现读取xm
l文件并在treeview上显示并 -
DPM模型行人检测xm
l文件 -
firstob
ject xm l editor-xm l查看器 -
使用xm
l编写的留言板模块 -
xm
l实践.zip - opencv_haartraining.exe 和opencv_createsample
-
opencv 训练 xm
l文件 haar -
用xm
l做网页 新手入门用xm l做网页 -
xm
l完全操作 xm l增删改查 -
xm
l课程设计代码 -
考研词汇xm
l格式 -
kettle 解析xm
l xm l文档,配合kettl -
汇川伺服ethercat通讯描述文件xm
l -
基于xm
l的EtherCAT工业以太网协议解析 -
flash+xm
l单选题源代码 -
VC 中使用ba
se64编解码图片 -
应用socket编程来进行xm
l的传输已经 -
用xm
l实现的个人简历 -
jsoup解析xm
l文件 -
xm
l加密解密工具xm lEncryption -
book.xsd xm
l实验 -
查看 编辑 xm
l文件的 小工具 -
xm
l在Qt中三种方法解析的简单 -
xm
l习题集选择、填空、判断和编程 -
批量xm
l标注文件转为groundtruth.txt -
xm
ltotxt转换工具 -
QT对xm
l增删查改读取,节点自定义, -
基于xm
l数据库的留言系统源码 -
applicationHost.config xm
l格式错误解决 -
Luaxm
l工具
评论
共有 条评论