简单管理系统的开发流程(基于XML)
2016-07-27 00:00
465 查看
摘要: 简单管理系统 开发流程 基于XML
简单管理系统的开发流程
1、定义好数据层
选择一个存储方式(XML)
创建users.xml
2、创建DAO完成对用户对象的CRUD
Data Access Object -->DAO
DAO所做的事情是完成对用户对象的增删改查,常规的说,每一个对象都有一个DAO。
3、编写一个XML的工具类来完成对XML的操作
4、编写XML的单例模式
单例模式指的是所有的对象只有一个,这样可以提高访问的效率。
简单管理系统的开发流程
1、定义好数据层
选择一个存储方式(XML)
创建users.xml
<?xml version="1.0" encoding="UTF-8"?> <users> </users>
2、创建DAO完成对用户对象的CRUD
Data Access Object -->DAO
DAO所做的事情是完成对用户对象的增删改查,常规的说,每一个对象都有一个DAO。
public class UserDao { public static final String USER_XML = "users"; private Document ud; public UserDao() { ud = XMLUtil.getUserDocument(); } private void write() { XMLUtil.write2XML(ud, USER_XML); } private Element loadElementByUsername(String username) { String path = "/users/user[username='"+username+"']"; Element e = (Element)ud.selectSingleNode(path); return e; } private User element2User(Element e) { User u = new User(); u.setNickname(e.elementText("nickname")); u.setPassword(e.elementText("password")); u.setUseranme(e.elementText("username")); return u; } public void add(User user) { if(user.getUseranme()==null||"".equals(user.getUseranme())) throw new ExpException("用户名不能为空"); User u = this.load(user.getUseranme()); if(u!=null) throw new ExpException("用户已经存在!不能继续添加"); Element e = ud.getRootElement().addElement("user"); e.addElement("username").addText(user.getUseranme()); e.addElement("password").addText(user.getPassword()); e.addElement("nickname").addText(user.getNickname()); write(); } public void delete(String username) { //1、获取根节点 Element root = ud.getRootElement(); //2、获取username的节点 Element e = loadElementByUsername(username); root.remove(e); write(); } public void update(User user) { //1、根据username获取节点 Element e = loadElementByUsername(user.getUseranme()); if(e==null) throw new ExpException("要更新的用户不存在"); //2、为这个节点修改数据 e.element("password").setText(user.getPassword()); e.element("nickname").setText(user.getNickname()); write(); } public User load(String username) { Element e = loadElementByUsername(username); if(e==null) return null; User u = element2User(e); return u; } @SuppressWarnings("unchecked") public List<User> list() { String path = "/users/user"; List<Element> eles = ud.selectNodes(path); List<User> users = new ArrayList<User>(); for(Element e:eles) { users.add(element2User(e)); } return users; }
3、编写一个XML的工具类来完成对XML的操作
public class XMLUtil { private static Document userDocument; public static Document getUserDocument() { //如果document存在直接返回 if(userDocument!=null) return userDocument; //如果不存在就创建对象 try { SAXReader reader = new SAXReader(); //System.out.println(XMLUtil.class.getResource("")); //System.out.println(XMLUtil.class.getClassLoader().getResource("")); userDocument = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream("xml/users.xml")); return userDocument; } catch (DocumentException e) { e.printStackTrace(); } return null; } public static void write2XML(Document d,String name) { XMLWriter out = null; try { String path = XMLUtil.class.getClassLoader().getResource("xml/"+name+".xml").getPath(); path = path.replace("bin", "src"); out = new XMLWriter(new FileWriter(path),OutputFormat.createPrettyPrint()); out.write(d); } catch (IOException e) { e.printStackTrace(); } finally { try { if(out!=null) out.close(); } catch (IOException e) { e.printStackTrace(); } } }
4、编写XML的单例模式
单例模式指的是所有的对象只有一个,这样可以提高访问的效率。
private static Document userDocument; public static Document getUserDocument() { //如果document存在直接返回 if(userDocument!=null) return userDocument; //如果不存在就创建对象 try { SAXReader reader = new SAXReader(); //System.out.println(XMLUtil.class.getResource("")); //System.out.println(XMLUtil.class.getClassLoader().getResource("")); userDocument = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream("xml/users.xml")); return userDocument; } catch (DocumentException e) { e.printStackTrace(); } return null; }
相关文章推荐
- C语言学籍管理系统源代码
- 学生成绩管理系统C语言代码实现
- C++基础学生管理系统
- 收集学习asp.net比较完整的面向对象开发流程
- C语言设计图书登记系统与停车场管理系统的实例分享
- 简单实现Android学生管理系统(附源码)
- JSP学生信息管理系统
- C++实现简单的职工管理系统实训代码
- C++实现简单的信息管理系统
- Winform学生信息管理系统登陆窗体设计(1)
- NPOINT免费虚拟主机管理系统windows2003的安装方法【图文】第1/2页
- C语言实现学生信息管理系统(单链表)
- 一些 PHP 管理系统程序中的后门
- Winform学生信息管理系统主页面设计(2)
- Winform学生信息管理系统各子窗体剖析(3)
- Android实现学生管理系统
- C++学生信息管理系统
- 如何使用AngularJs打造权限管理系统【简易型】
- 简单实现Java版学生管理系统
- Java+Mysql学生管理系统源码