📄 xmluserdao.java
字号:
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 + -