用xml文件,来操作一个联系人管理系统
用xml文件,来操作一个联系人管理系统
HoneyHoney 发表于3年前
用xml文件,来操作一个联系人管理系统
  • 发表于 3年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: dom实际使用 实际参考王健20140812_PM4_XML,录像3

用户: 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());
  }
 }
}


共有 人打赏支持
粉丝 0
博文 21
码字总数 6313
×
HoneyHoney
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: