- public class main {
- public static void main(String[] args) {
- try{
- System.out.println("添加学生(a) 删除学生(b) 查找学生(c)");
- System.out.println("请输入操作类型");
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String type = br.readLine();
- switch(type)
- {
- case "a":
- System.out.println("请输入学生姓名:");
- String name = br.readLine();
- System.out.println("请输入学生姓准考证好:");
- String examid = br.readLine();
- System.out.println("请输入学生身份证号:");
- String idcard = br.readLine();
- System.out.println("请输入学生所在地:");
- String location = br.readLine();
- System.out.println("请输入学生成绩:");
- String grade = br.readLine();
- Student s = new Student();
- s.setExam(examid);
- s.setName(name);
- s.setGrade(Double.parseDouble(grade));
- s.setIdcard(idcard);
- s.setLocation(location);
- StudentDao dao = new StudentDao();
- dao.add(s);
- System.out.println("添加成功");
- break;
- case "b":
- System.out.println("请输入要删除的学生的姓名:");
- String nameB = br.readLine();
- try{
- StudentDao daoB = new StudentDao();
- daoB.delete(nameB);
- System.out.println("删除成功!");
- }catch(StudentNotExistException e)
- {
- System.out.println("学生名不存在");
- }
- break;
- case "c":
- Student sc =null;
- System.out.println("请输入要删除的学生的准考证号:");
- String examidC = br.readLine();
- StudentDao daoC = new StudentDao();
- if((sc = daoC.find(examidC))!=null)
- {
- System.out.println(sc.toString());
- }else{
- System.out.println("没有该学生");
- }
- break;
- default:
- System.out.println("不支持!");
- }
- }catch(Exception e){
- e.printStackTrace();
- System.out.println("出错!");
- }
学生类
- public class Student {
- private String idcard;
- private String exam;
- private String name;
- private String location;
- private double grade;
- public String getIdcard() {
- return idcard;
- }
- public void setIdcard(String idcard) {
- this.idcard = idcard;
- }
- public String getExam() {
- return exam;
- }
- public void setExam(String exam) {
- this.exam = exam;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getLocation() {
- return location;
- }
- public void setLocation(String location) {
- this.location = location;
- }
- public double getGrade() {
- return grade;
- }
- public void setGrade(double grade) {
- this.grade = grade;
- }
- }
- public class StudentDao {
- public void add(Student s){
- try {
- Document document = XmlUtils.getDocument();
- //创建出封装学生信息的标签
- Element student_tag = document.createElement("Student");
- student_tag.setAttribute("idcard",s.getIdcard());
- student_tag.setAttribute("examid",s.getExam());
- //创建用于封装学生姓名、所在地和成绩标签
- Element name = document.createElement("name");
- Element location = document.createElement("location");
- Element grade = document.createElement("grade");
- name.setTextContent(s.getName());
- location.setTextContent(s.getLocation());
- grade.setTextContent(s.getGrade()+"");
- student_tag.appendChild(name);
- student_tag.appendChild(location);
- student_tag.appendChild(grade);
- //把封装了信息学生标签挂到文档上
- document.getElementsByTagName("exam").item(0).appendChild(student_tag);
- //更新内存
- XmlUtils.write2Xml(document);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- throw new RuntimeException(e);
- }
- }
- public Student find(String examid){
- try {
- Document document = XmlUtils.getDocument();
- NodeList list = document.getElementsByTagName("Student");
- for(int i=0;i<list.getLength();i++)
- {
- Element student_tag = (Element) list.item(i);
- if(student_tag.getAttribute("examid").equals(examid)){
- //找到与examid向匹配的学生,new一个student对象封装这个学生的信息返回
- Student s = new Student();
- s.setExam(examid);
- s.setIdcard(student_tag.getAttribute("idcard"));
- s.setName(student_tag.getElementsByTagName("name").item(0).getTextContent());
- s.setLocation(student_tag.getElementsByTagName("location").item(0).getTextContent());
- s.setGrade(Double.parseDouble(student_tag.getElementsByTagName("grade").item(0).getTextContent()));
- return s;
- }
- }
- return null;
- } catch (Exception e) {
- // TODO Auto-generated catch block
- throw new RuntimeException(e);
- }
- }
- public void delete(String name) throws StudentNotExistException{
- try {
- Document document = XmlUtils.getDocument();
- NodeList list = document.getElementsByTagName("name");
- for(int i=0;i<list.getLength();i++){
- if(list.item(i).getTextContent().equals(name)){
- list.item(i).getParentNode().getParentNode().removeChild(list.item(i).getParentNode());
- XmlUtils.write2Xml(document);
- return;
- }
- }
- throw new StudentNotExistException(name+"不存在!");
- }catch(StudentNotExistException e){
- throw e;
- }
- catch (Exception e) {
- // TODO Auto-generated catch block
- throw new RuntimeException(e);
- }
- }
- }
xml文件格式
- <student examid="444" idcard="333">
- <name>***</name>
- <location>add</location>
- <grade>99</grade>
- </student>