当前位置:编程学习 > XML/UML >>

基于XML数据库的学生信息管理系统的设计与实现

本项目是在学习之余写的,主要用来练习MVC+DAO的分层设计思想,项目基于一个简单的XML学生数据库,使用XML作为数据库的原因是其十分的小巧与方便,使用dom4j即可进行方便的解析。因为这段时间课程一直比较密集,在Java相关内容的学习上比较滞后。希望用这个小项目来练一练久矣不写代码的手,也作为研一一个月来的学习小结吧。不废话了,具体内容如下:
 
项目说明:
本项目提供简单的用户界面(命令行),实现对XML数据库中学生数据的增删改查操作。项目要求使用分层设计思想,为什么要分层?分层可以将不同的代码块分离出来,避免不同功能的代码耦合,为程序扩展和维护提供方便。使用分层,也可以简单化一个系统的设计过程。
DB: students.xml
- Entity: Student 类 (packet: cn.myseu.test.stuMana.entity)
- Dao: StudentDao 类,完成具体的增删改查操作 (packet: cn.myseu.test.stuMana.dao)
- UI: StudentUI 类,实现用户输入操作  (packet: cn.myseu.test.stuMana.ui)
- SMS 类,提供主函数和用户界面  ( packet: cn.myseu.test.stuMana )
 
数据库如下:student.xml
[html] 
<?xml version="1.0" encoding="UTF-8"?>  
  
<students>   
  <student id="133122">   
    <name>well</name>    
    <age>22</age>   
  </student>   
</students>  
 
设计Student类完成对数据库中数据的封装
[java]  
package cn.myseu.test.stuMana.entity;  
  
public class Student {  
    private String id;  
    private String name;  
    private String age;  
      
      
    public String getId() {  
        return id;  
    }  
    public void setId(String id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getAge() {  
        return age;  
    }  
    public void setAge(String age) {  
        this.age = age;  
    }  
      
      
}  
 
设计StudentDao类完成对XML数据库的增删改查操作(这里将公操作进行了抽取,分布为getDocument()和write2xml())
[java]  
package cn.myseu.test.stuMana.dao;  
  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.OutputStream;  
import java.io.UnsupportedEncodingException;  
  
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;  
  
import cn.myseu.test.stuMana.entity.Student;  
  
public class StudentDao {  
      
    /** 
     * Add a new student to the database 
     * @param s 
     * @return 
     * @throws Exception  
     */  
    public boolean create(Student s) throws Exception{  
        boolean flag = false;  
        if(s!=null){  
            Document doc = getDocument();  
            Element root = doc.getRootElement();  
            Element newElement = root.addElement("student");  
            newElement.addAttribute("id", s.getId());  
            newElement.addElement("name").setText(s.getName());  
            newElement.addElement("age").setText(s.getAge());  
            write2xml(doc);  
            flag = true;  
        }  
        return flag;  
    }  
      
    /** 
     * delete a student from the xml-database 
     * @param id  the student_id you want to delete 
     * @return 
     * @throws Exception 
     */  
    public boolean delete(String id) throws Exception{  
        boolean flag = false;  
        Document doc = getDocument();  
        String xpath = "//student[@id='"+id+"']";  
        Element element = (Element) doc.selectSingleNode(xpath);  
        if(element!=null){  
            element.getParent().remove(element);  
            write2xml(doc);  
            flag = true;  
        }else  
            System.out.println("ID is not existed!");  
        return flag;  
    }  
      
    /** 
     * search the information of a specified student 
     * @param id 
     * @throws Exception 
     */  
    public void check(String id) throws Exception{  
        Document doc = getDocument();  
        String xpath = "//student[@id='"+id+"']";  
        Element element = (Element) doc.selectSingleNode(xpath);  
        if(element!=null){  
            System.out.println("stu_id:"+element.attributeValue("id"));  
            System.out.println("stu_name:"+element.elementText("name"));  
            System.out.println("stu_age:"+element.ele
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,