objectserialuserdao.java
来自「更不用说了,我培训期间的资料,包括每天老师的例子.文件主要包括,HIBERNAT」· Java 代码 · 共 72 行
JAVA
72 行
package server.dao;
import java.util.*;
import java.io.*;
import server.model.User;
//用对象序列化实现DAO
public class ObjectSerialUserDAO implements UserDAO {
private String fileName;
public ObjectSerialUserDAO(String fileName) {
this.fileName = fileName;
}
public Map<String, User> getAllUsers() {
Map<String,User> users=new HashMap<String,User>();
ObjectInputStream in=null;
try {
FileInputStream fi=new FileInputStream(fileName);
in=new ObjectInputStream(fi);
while(true){
Object o=in.readObject();
User u=(User)o;
users.put(u.getUserName(),u);
}
} catch (Exception e) {
}
finally{
try {
if (in!=null) in.close();
} catch (IOException e) {
}
}
return users;
}
public List<User> getAllUsersByClassNumber(String classNumber) {
Map<String,User> users=getAllUsers();
List<User> l=new ArrayList<User>();
Set<String> userNames=users.keySet();
for(String s:userNames){
User u=users.get(s);
if (classNumber.equals(u.getClassNumber())){
l.add(u);
}
}
return l;
}
public boolean saveUser(User u) {
Map<String,User> users=getAllUsers();
try {
FileOutputStream fo=new FileOutputStream(fileName);
ObjectOutputStream out=new ObjectOutputStream(fo);
Collection<User> us=users.values();
for(User u2:us){
out.writeObject(u2);
}
out.writeObject(u);
out.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?