分享

package com.ourchr.bookstore.dao;

 weixiaofeng01 2017-02-26
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);
}
}


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多