⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accountxmldao.java

📁 这个小的系统是使用java语言编写的一个银行类的小程序
💻 JAVA
字号:
package dao.impl;
import java.util.*;
import model.*;
import dao.AccountDao;

import java.io.*;

import org.w3c.dom.*;
import org.xml.sax.SAXException;

import javax.xml.parsers.*;

public class AccountXmlDao implements AccountDao {
	private String name;
	
	public AccountXmlDao(String name) {
		super();
		this.name = name;
	}

	public Map loadAccounts() {
		Map accounts=new HashMap();
		
		Document doc=null;
		try {
			DocumentBuilderFactory fact=DocumentBuilderFactory.newInstance();
			DocumentBuilder b=fact.newDocumentBuilder();
			doc = b.parse(name);
		} catch (Exception e1) {
			e1.printStackTrace();
			return accounts;
		} 
		NodeList nl=doc.getElementsByTagName("Account");
		for(int i=0;i<nl.getLength();i++){
			Element e=(Element)nl.item(i);
			
			String id=this.getText(e,"ID");
			String password=this.getText(e,"Password");
			String name=this.getText(e,"Name");
			String personId=this.getText(e,"PersonId");
			String email=this.getText(e,"Email");
			String balance=this.getText(e,"Balance");

			String type=e.getAttribute("type");
			
			Account c=null;
			if (type.equals("Saving")){
				c=new SavingAccount();
			}
			if (type.equals("Credit")){
				c=new CreditAccount();
			}
			if (type.equals("LoanSaving")){
				c=new LoanSavingAccount();
			}
			if (type.equals("LoanCredit")){
				c=new LoanCreditAccount();
			}
			c.setId(Long.parseLong(id));
			c.setPassword(password);
			c.setName(name);
			c.setPersonId(personId);
			c.setEmail(email);
			c.setBalance(Double.parseDouble(balance));
			accounts.put(Long.valueOf(id),c);
			
			if (type.equals("Credit")){
				CreditAccount ca=(CreditAccount)c;
				String ceiling=this.getText(e,"Ceiling");
				ca.setCeiling(Double.parseDouble(ceiling));
			}
			if (type.equals("LoanSaving")){
				LoanSavingAccount ca=(LoanSavingAccount)c;
				String loan=this.getText(e,"Loan");
				ca.setLoan(Double.parseDouble(loan));
			}
			if (type.equals("LoanCredit")){
				LoanCreditAccount ca=(LoanCreditAccount)c;
				String loan=this.getText(e,"Loan");
				ca.setLoan(Double.parseDouble(loan));
				String ceiling=this.getText(e,"Ceiling");
				ca.setCeiling(Double.parseDouble(ceiling));
			}
					
		}
		return accounts;
	}

	public void saveAccounts(Map m) {
		PrintWriter out=null;
		try {
			out = new PrintWriter(name);
			out.println("<?xml version=\"1.0\" ?>");
			out.println("<Accounts>");
			
			Collection c=m.values();
			Iterator it=c.iterator();
			while(it.hasNext()){
				Account a=(Account)it.next();
				out.print("\t<Account type=\"");
				if (a instanceof LoanSavingAccount){
					out.println("LoanSaving\">");
				}
				else if (a instanceof LoanCreditAccount){
					out.println("LoanCredit\">");
				}
				else if (a instanceof SavingAccount){
					out.println("Saving\">");
				}
				else {
					out.println("Credit\">");
				}
				
				out.println("\t\t<ID>"+a.getId()+"</ID>");
				out.println("\t\t<Password>"+a.getPassword()+"</Password>");
				out.println("\t\t<Name>"+a.getName()+"</Name>");
				out.println("\t\t<PersonId>"+a.getPersonId()+"</PersonId>");
				out.println("\t\t<Email>"+a.getEmail()+"</Email>");
				out.println("\t\t<Balance>"+a.getBalance()+"</Balance>");
				
				if (a instanceof  CreditAccount){
					CreditAccount ca=(CreditAccount)a;
					out.println("\t\t<Ceiling>"+ca.getCeiling()+"</Ceiling>");
				}
				if (a instanceof Loanable){
					Loanable l=(Loanable)a;
					out.println("\t\t<Loan>"+l.getLoan()+"</Loan>");
				}
				out.println("\t</Account>");
			}
			out.println("</Accounts>");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		finally{
			out.close();		
		}

	}
	
	//得到e下边的tagName子标记,获取其文本内容
	private String getText(Element e,String tagName){
		NodeList nl=e.getElementsByTagName(tagName);
		Element e2=(Element)nl.item(0);
		return e2.getTextContent().trim();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -