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

📄 xmluserdao.java

📁 用java开发的QQ管理系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.zlf.dao.xml;

import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Vector;

import javax.swing.JOptionPane;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import com.zlf.dao.UserDao;
import com.zlf.dao.vo.User;
import com.zlf.qqserver.utils.QQUtils;

public class XmlUserDao implements UserDao {
	
	
	public Document getDocument(){
		SAXReader saxReader = new SAXReader();
		Document doc = null;
		try {
			doc = saxReader.read("xml/user.xml");
			//System.out.println("ok");
		} catch (DocumentException e) {
			//System.out.println("oh no");
			e.printStackTrace();
			JOptionPane.showMessageDialog(null,"XML读取出错");
			QQUtils.properties.setProperty("noshow","no");
			QQUtils.saveProperties();
		}
		return doc;
		
	}
	
	public Element findElement(Document doc,String id){
		Element root = doc.getRootElement();
		Node node = root.selectSingleNode("/users/user[@userId='"+id+"']");
		
		if (node != null && node.getNodeType() == Node.ELEMENT_NODE){
			return (Element)node;
		}else
			return null;
				
	
	}

	public Element findElementByName(Document doc,String name){
		
		Element root = doc.getRootElement();
		Node node = root.selectSingleNode("/users/user/userName[text()='"+name+"']/parent::*");
		
		if (node != null && node.getNodeType() == Node.ELEMENT_NODE){
			return (Element)node;
		}else
			return null;
	}
	
	public void outputXML(Document doc){

		try {
			OutputFormat format = OutputFormat.createPrettyPrint();
			format.setEncoding("GBK");
			XMLWriter writer = new XMLWriter(new FileWriter("./xml/user.xml"),format);
			writer.write(doc);
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
			
		}
		
	}
		
		

	public int deleteUser(String userId){
		Document doc = getDocument();
		if (doc != null){
			Element e = findElement(doc, userId);
			System.out.println("find");
			if (e != null){
				doc.getRootElement().remove(e);
				outputXML(doc);
				return 1;
			}else
				return 0;
		}
		return 0;
	}

	public int addUser(User user) {
		Document doc = getDocument();
		if (doc != null){
			if (findElement(doc,user.getUserId()) == null){
				Element root = doc.getRootElement();
				
				Element euser = root.addElement("user");
				
				euser.addAttribute("userId", user.getUserId());
				
//				Element euserid = euser.addElement("userId");
//				euserid.setText(user.getUserId());
				
				Element eusername = euser.addElement("userName");
				eusername.setText(user.getUserName());
				
				Element eusernickname = euser.addElement("userNickName");
				eusernickname.setText(user.getUserNickName());
				
				Element euserPWD = euser.addElement("userPwd");
				euserPWD.setText(user.getUserPwd());
				
				Element euserSex = euser.addElement("userSex");
				euserSex.setText(user.getUserSex());
				
				Element euserIcon = euser.addElement("userIcon");
				euserIcon.setText(user.getUserIcon());
				
				Element euserAge = euser.addElement("userAge");
				euserAge.setText(Integer.toString(user.getUserAge()));
				
				Element edeptId = euser.addElement("departmentid");
				edeptId.setText(user.getDeptId());
				
				Element euserPhone = euser.addElement("userPhone");
				euserPhone.setText(user.getUserPhone());
				
				Element euserAddr = euser.addElement("userAddr");
				euserAddr.setText(user.getUserAddr());
				
				Element euserLastLogin = euser.addElement("userLastLogin");
				//euserLastLogin.setData(user.getUserLastLogin());
				euserLastLogin.setText(user.getUserLastLogin().toString());
				
				Element euserRegDate = euser.addElement("userRegDate");
				//euserRegDate.setData(user.getUserRegDate());
				euserRegDate.setText(user.getUserRegDate().toString());
				
				Element euserLoginNum = euser.addElement("userLoginNum");
				euserLoginNum.setText(Integer.toString(user.getUserLoginNum()));
				
				Element euserOnLine = euser.addElement("userOnline");
				euserOnLine.setText(Integer.toString(user.getUserOnline()));
				
				
				outputXML(doc);
				return 1;
			}
		}else
			return 0;
		return 0;
	}

	public Vector selectUser(HashMap h) {
		Vector data = new Vector();
		Set set = h.keySet();
		Iterator iter = set.iterator();
		String st = (String) iter.next();
		Document doc = this.getDocument();
		try{

			Element root = doc.getRootElement();
			List userList = root.selectNodes("/users/user");
			
			//System.out.println(userList);

			if (st.equals("1")) {
				// 查询出显示在表格中的字段
				for (int i = 0; i < userList.size(); i++) {
					
					
//					System.out.println(userList.get(i));

					Element e = (Element) userList.get(i);
					
//					System.out.println(e);
//					
//					System.out.println(e.attribute("userId").getText());
//					System.out.println(e.selectSingleNode("userName").getText());
//					System.out.println(e.selectSingleNode("userNickName").getText());
//					System.out.println(e.selectSingleNode("userSex").getText());
				
					Vector user = new Vector();
				
					
					
					user.add(e.attribute("userId").getText());
					user.add(e.selectSingleNode("userName").getText());
					user.add(e.selectSingleNode("userNickName").getText());
					user.add(e.selectSingleNode("userSex").getText());
					//根据部门编号返回部门名称
					HashMap hashMap=new HashMap();
					hashMap.put("5", (e.selectSingleNode("departmentid").getText()));
					//System.out.println("ssss:"+new XmlDeptDao().selectDept(hashMap));
					String deptName= (String) new XmlDeptDao().selectDept(hashMap).get(0);
					user.add(deptName);
					user.add(e.selectSingleNode("userLastLogin").getText());
					data.add(user);
				}
				
			} else if (st.equals("2")) {
				// 查询出用户表中所有的字段
				for (int i = 0; i < userList.size(); i++) {
					Element e = (Element) userList.get(i);
					if (e.attribute("userId").getText().equals((String) h.get("2"))) {
						Vector user = new Vector();
						user.add(e.attribute("userId").getText());
						user.add(e.selectSingleNode("userPwd").getText());
						user.add(e.selectSingleNode("userName").getText());
						user.add(e.selectSingleNode("userNickName").getText());
						user.add(e.selectSingleNode("userSex").getText());
						user.add(e.selectSingleNode("userIcon").getText());
						user.add(e.selectSingleNode("userAge").getText());
						user.add(e.selectSingleNode("departmentid").getText());
						user.add(e.selectSingleNode("userPhone").getText());
						user.add(e.selectSingleNode("userLastLogin").getText());
						user.add(e.selectSingleNode("userAddr").getText());
						user.add(e.selectSingleNode("userRegDate").getText());
						user.add(e.selectSingleNode("userLoginNum").getText());
						user.add(e.selectSingleNode("userOnline").getText());
						data.add(user);
					}
				}
			} else if (st.equals("3")) {
				// 返回是否存在部门表的引用
				int count = 0;
				for (int i = 0; i < userList.size(); i++) {
					Element e = (Element) userList.get(i);
					if (e.selectSingleNode("departmentid").equals((String) h.get("3"))) {
						count++;
					}
				}
				data.add(String.valueOf(count));
			} else if (st.equals("4")) {
				// 自动生成编号
				int max = 10000;
				if (userList.size() == 0) {

⌨️ 快捷键说明

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