📄 userxmldao.java
字号:
package dao.impl;
import java.util.*;
import model.*;
import dao.UserDao;
import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
public class UserXmlDao implements UserDao {
private String name;
public UserXmlDao(String name) {
super();
this.name = name;
}
public Map loadUsers() {
try{
Map users = new HashMap();
Document doc = null;
try {
DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
DocumentBuilder b = fact.newDocumentBuilder();
doc = b.parse(name);
} catch (Exception e1) {
e1.printStackTrace();
return users;
}
NodeList nl = doc.getElementsByTagName("User");
for (int i = 0; i < nl.getLength(); i++) {
Element e = (Element) nl.item(i);
String id = this.getText(e, "ID");
String name = this.getText(e, "Name");
String password = (this.getText(e, "Password"));
String sex = this.getText(e, "Sex");
String qqid = this.getText(e, "Qqid");
String birthyear = this.getText(e, "Birthyear");
String timelong = this.getText(e, "Timelong");
NodeList n2 = e.getElementsByTagName("Friend");
ArrayList l = new ArrayList();
if (n2 != null) {
for (int j = 0; j < n2.getLength(); j++) {
Element e2 = (Element) n2.item(j);
String a = e2.getTextContent().trim();
int friendid=Integer.parseInt(a);
l.add(friendid);
System.out.println("friendid"+friendid);
}
}
String face = this.getText(e, "Face");
String money = this.getText(e, "Money");
String lastload = this.getText(e, "Last");
String text = this.getText(e, "Text");
String shengxiao=this.getText(e,"Shengxiao");
String star=this.getText(e,"Star");
String home=this.getText(e,"Home");
String university=this.getText(e,"University");
String zhuanye=this.getText(e,"Zhuanye");
String she=this.getText(e,"She");
String rank=this.getText(e,"Rank");
ArrayList black=new ArrayList();
NodeList n3 = e.getElementsByTagName("Black");
if (n3 != null) {
for (int j = 0; j < n3.getLength(); j++) {
Element e3 = (Element) n3.item(j);
String b = e3.getTextContent().trim();
int blackid=Integer.parseInt(b);
black.add(blackid);
}
}
User c = new User();
c.setId(Integer.parseInt(id));
c.setName(name);
c.setPassword(password);
c.setSex(sex);
c.setQqid(qqid);
c.setBirthyear(Integer.parseInt(birthyear));
c.setTimelong(Integer.parseInt(timelong));
c.setFriendid(l);
c.setFace(Integer.parseInt(face));
c.setState(0);
c.setMoney(Integer.parseInt(money));
c.setLastload(lastload);
c.setText(text);
c.setShengxiao(shengxiao);
c.setStar(star);
c.setHome(home);
c.setUniversity(university);
c.setZhuanye(zhuanye);
c.setRank(Integer.parseInt(rank));
c.setShe(Integer.parseInt(she));
c.setBlack(black);
users.put(Integer.valueOf(id), c);
}
for(Object obj: users.keySet()){
int userid=(Integer)obj;
System.out.println("userid"+userid);
((User)(users.get(userid))).setFriends(users);
}
return users;}catch(Exception e){
e.printStackTrace();
return null;
}finally{
}
}
public void saveUsers(Map m) {
PrintWriter out = null;
try {
try {
out = new PrintWriter(name,"unicode");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
out.println("<?xml version=\"1.0\" ?>");
out.println("<Users>");
Collection c = m.values();
Iterator it = c.iterator();
while (it.hasNext()) {
User a = (User) it.next();
out.println("\t<User>");
out.println("\t\t<ID>" + a.getId() + "</ID>");
out.println("\t\t<Name>" + a.getName() + "</Name>");
out.println("\t\t<Password>" + a.getPassword() + "</Password>");
out.println("\t\t<Sex>" + a.getSex() + "</Sex>");
out.println("\t\t<Qqid>" + a.getQqid() + "</Qqid>");
out.println("\t\t<Birthyear>" + a.getBirthyear()
+ "</Birthyear>");
out.println("\t\t<Timelong>" + a.getTimelong() + "</Timelong>");
out.println("\t\t<Friends>");
for (Object o : a.getFriends().keySet()) {
int friendid=(Integer)o;
out.println("\t\t\t<Friend>" + friendid + "</Friend>");
}
out.println("\t\t</Friends>");
out.println("\t\t<Face>" + a.getFace() + "</Face>");
out.println("\t\t<Money>" + a.getMoney() + "</Money>");
out.println("\t\t<Last>" + a.getLastload()+ "</Last>");
out.println("\t\t<Text>" + a.getText() + "</Text>");
out.println("\t\t<Shengxiao>" + a.getShengxiao() + "</Shengxiao>");
out.println("\t\t<Star>" + a.getStar() + "</Star>");
out.println("\t\t<Home>" + a.getHome() + "</Home>");
out.println("\t\t<University>" + a.getUniversity()+ "</University>");
out.println("\t\t<Zhuanye>" + a.getZhuanye() + "</Zhuanye>");
out.println("\t\t<She>" + a.getShe() + "</She>");
out.println("\t\t<Rank>" + a.getRank()+ "</Rank>");
out.println("\t\t<Blacks>");
for (Object o : a.getBlack()) {
int blackid=(Integer)o;
out.println("\t\t\t<Black>" + blackid + "</Black>");
}
out.println("\t\t</Blacks>");
out.println("\t</User>");
}
out.println("</Users>");
} catch (Exception 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 + -