package com.ourchr.bookstore.dao; import java.io.*; public class BaseDAO { /** * 存入文件信息 * @param obj * @param filename */ public static void saveObjectToFile(Object obj, String filename) { try { ObjectOutputStream os = new ObjectOutputStream( new FileOutputStream(filename)); os.writeObject(obj); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); System.out.println("出现异常!"); } } /** * 读取文件信息 * @param filename * @return */ public Object loadObjectFromFile(String filename) { try { File file = new File(filename); if(! file.exists()) { return null; } ObjectInputStream os = new ObjectInputStream( new FileInputStream(filename)); Object obj = os.readObject(); os.close(); return obj; } catch (Exception e) { e.printStackTrace(); System.out.println("出现异常!"); } return null; } } package com.ourchr.bookstore.dao; import com.ourchr.bookstore.info.Book; import java.util.*; public class BookDAO extends BaseDAO { private static BookDAO book; private static final String BOOK_FILE = "book.dat"; private Map<String, Book> bookMap; @SuppressWarnings("unchecked") private BookDAO() { Object obj = this.loadObjectFromFile(BOOK_FILE); if(obj == null) { bookMap = new HashMap<String, Book>(); } else { bookMap = (HashMap<String, Book>)obj; } } /** * 添加图书 * @param book */ public void addBook(Book book) { bookMap.put(book.getCode(), book); } /** * 删除图书 * @param book */ public void removeBook(Book book) { bookMap.remove(book.getCode()); } /** * 查找所有图书 * @return 返回Map<String,Book> */ public Map<String, Book> findAllBooks() { return bookMap; } /** * 查找指定图书信息 * @param code * @return bookMap.get(code) */ public Book findBooksByCode(String code) { return bookMap.get(code); } public static BookDAO getUs() { if(book == null) { book = new BookDAO(); } return book; } @SuppressWarnings("static-access") public void saveBookDat() { this.saveObjectToFile(bookMap, BOOK_FILE); } } package com.ourchr.bookstore.dao; import java.util.*; import com.ourchr.bookstore.info.User; public class userDAO extends BaseDAO { private static final String USER_FILE = "Jan.dat"; private static userDAO us = null; private List<User> userList = new LinkedList<User>(); /** * 构造函数 */ @SuppressWarnings("unchecked") private userDAO() { Object obj = this.loadObjectFromFile(USER_FILE); if (obj == null) { User admin = new User(); admin.setCode("admin"); admin.setPassword("pass"); admin.setName("超级管理员"); admin.setType(User.ADMIN_USER); userList.add(admin); } else { userList = (LinkedList<User>) this.loadObjectFromFile(USER_FILE); } } /** * userDAO最多只能被调用一次 * * @return us */ public static userDAO getUs() { if (us == null) { us = new userDAO(); } return us; } /** * 添加读者 * * @param user */ public void addUser(User user) { userList.add(user); } /** * 删除读者 * * @param user */ public void removeUser(User user) { for (int i = 0; i < userList.size(); i++) { User u = userList.get(i); if (u.getCode().equals(user.getCode())) { userList.remove(i); return; } } } /** * 查找读者 * * @param code * @return 找到则返回 user,否则返回null */ public User findUserByCode(String code) { for (int i = 0; i < userList.size(); i++) { User user = userList.get(i); if (user.getCode().equals(code)) { return user; } } return null; } /** * 保存信息 */ @SuppressWarnings("static-access") public void saveUserDat() { this.saveObjectToFile(userList, USER_FILE); } } |
|
来自: weixiaofeng01 > 《待分类》