文档章节

用xml文件,来操作一个联系人管理系统

H
 HoneyHoney
发布于 2015/06/13 13:18
字数 485
阅读 4
收藏 0

用户: user

         id,name,pwd

联系人:contact

       id,name,tel

第一步:设计xml和格式

第二步:设置项目的结构

第三步:开发两个javaBean用于数据的封装

第四步:为了不用每次都去读取xml文件,所有,应该将dom对象单一的实例

package cn.utils;
 
import java.io.File;
 
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
public class DomFactory {
 private static Document dom;
 private static File file;
 static {
  try {
   file =new File( ClassLoader.getSystemResource("contact.xml").getPath());
   dom = DocumentBuilderFactory
     .newInstance()
     .newDocumentBuilder()
     .parse(file);
  } 
catch (Exception e) {
   throw new RuntimeException(e);//转换异常
  }
 }
 //用工厂模式返回这个domn
 public static Document getDocument(){
  return dom;
 }
 //保存的功能
 public static void transform(){
  try {
   Transformer ts = TransformerFactory.newInstance().newTransformer();
   ts.transform(new DOMSource(dom), new StreamResult(file));
  } catch (Exception e) 
{
   e.printStackTrace();
  }
 }
 
}

第五步:开发dao

import cn.domain.User;
import cn.utils.DomFactory;
 
public class ContactDao {
 public boolean login(User user){
  boolean boo =false;
  //遍历dom
  Document dom = DomFactory.getDocument();
  NodeList nl = dom.getElementsByTagName("user");
  for(int i=0,len=nl.getLength();i<len;i++){
   Element e = (Element) nl.item(i);
   String name =e.getElementsByTagName("name").item(0).getTextContent();
   String pwd = e.getElementsByTagName("pwd").item(0).getTextContent();
   if(name.equals(user.getName())&& pwd.equals(user.getPwd())){
    boo = true;
    break;
   }
  }
  return boo;
 }
}

第六步:开发action

package cn.contact;
 
import java.util.List;
import java.util.Scanner;
 
import cn.contact.dao.ContactDao;
import cn.domain.Contact;
import 
cn.domain.User;
 
public class ContactAction {
 public static void main(String[] args) {
  new ContactAction();
 }
 Scanner sc = new Scanner(System.in);
 private ContactDao dao;
 ContactAction(){
  dao = new ContactDao();
  while(true){
   System.err.println("1:login\n2:reg\n3:exit");
   String op = sc.nextLine();
   if(op.equals("1")){
    login();
   }else if(op.equals("2")){
    reg();
   }else if(op.equals("3")){
    break;
   }
  }
 }
 private void login(){
  System.err.println("plz enter name:");
  String name = sc.nextLine();
  String pwd = sc.nextLine();
  User u = new User();
  u.setName(name);
  u.setPwd(pwd);
  
  boolean boo =dao.login(u);
  if(boo){
   System.err.println("login success..");
   //查询所有联系人
   operation();
  }else{
   System.err.println("name or password is eerror");
  }
 }
 private void reg(){
  String name = sc.nextLine();
  String pwd = sc.nextLine();
  User u = new User();
  u.setName(name);
  u.setPwd(pwd);
  dao.reg(u);
 }
 
 public void operation(){
  while(true){
   System.err.println("1:show all\n2:del\n3:update\n4:exit\n5:add");
   String op = sc.nextLine();
   if(op.equals("1")){
    showAll();
   }else 
if(op.equals("5")){
    add();
   }else 
if(op.equals("4")){
    break;
   }
  }
 }
 private void add() 
{
  String name = sc.nextLine();
  String tel = 
sc.nextLine();
  Contact c = new 
Contact();
  c.setName(name);
  c.setTel(tel);
  dao.add(c);
 }
 public 
void showAll(){
  List<Contact> list = dao.showALl();
  System.err.println("ID\t\t\t\tName\t\ttel");
  for(Contact c :list){
   System.err.println(c.getId()+"\t\t\t\t"+c.getName()+"\t\t\t"+c.getTel());
  }
 }
}


© 著作权归作者所有

共有 人打赏支持
上一篇: XML--Jaxp-sax解析
下一篇: XML--Jaxp-dom解析
H
粉丝 0
博文 21
码字总数 6313
作品 0
济南
私信 提问
7.gloox 之 RosterManager

gloox 之 RosterManager 此类实现了jabber:iq:roster名空间中的Jabber/XMPP花名册操作 它继承了 IqHandler, PresenceHandler,SubscriptionHandler 和 PrivateXMLHandler 详细说明: 此类实现...

冯京宝
2010/12/11
0
0
优客服-多渠道客服系统/UCKeFu-ASK

#UCKeFu-ASK #优客服-问答社区 优客社区是一个基于 Spring Boot 的轻量级社区系统,设计之初是为优客服项目提供在线交流的一个社区平台。 (QQ群:555834343,目前项目正在开发过程中,尚未发...

优客服-多渠道客服系统
2017/02/10
0
0
ERP软件 OpenYABS 1.0 RC1 发布

YaBS 是一个企业资源计划软件,用来管理包括产品和联系人信息,功能包括采购需求、订单、发票和提醒,功能非常强大,支持各种兼容JDBC 的数据库,可扩展性很强。 如下图所示,点击图片查看大...

红薯
2009/11/23
573
0
exchange 批量添加联系人

本文分步说明如何使用如何使用逗号分隔值数据交换工具csvde将域用户信息从域控中导出,如何使用Exchange 命令行管理程序在exchange中创建联系人和添加修改联系人属性。一些方案中可能使用此法...

kindlica
2012/12/24
0
0
优客服-多渠道客服系统/UCKeFu

#优客服 优客服官方技术支持QQ群(555834343,目前项目已发布v3.0.0版本,加入QQ群可以了解最新进度和技术问题咨询。): 优客服,是一个多渠道融合的客户支持服务平台,包含WebIM,微信,电...

优客服-多渠道客服系统
2017/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部