本文实例为大家分享了java书店系统毕业设计第二篇,供大家参考,具体内容如下
1、用户管理(user.txt)
字段名和顺序
说明:其中的type为int类型,用来表示操作用户的类型。
1——表示为admin,可以进行全部操作
2——表示为能操作图书模块的人员
3——表示为能操作进货模块的人员
4——表示为能操作销售模块的人员
5——表示为能操作库存模块的人员
type用了枚举实现
package cn.hncu.bookStore.user.common; public enum UserTypeEnum { AdMIN(1,"超级管理员"),BOOK(2,"图书管理员"),IN(3,"进货管理员"),OUT(4,"销售管理员"),STOCK(5,"库存管理员"); private final int type; private final String name; UserTypeEnum(int type,String name){//默认private this.name =name; this.type=type; } public int getType() { return type; } public String getName() { return name; } public static int getTypeByName(String name){ for(UserTypeEnum utm:UserTypeEnum.values()){ if(utm.getName().equals(name.trim())){ return utm.getType(); } } throw new IllegalArgumentException("没有该\""+name+"\"对应的用户类型");//非法参数异常 } public static String getNameByType(int type){ for(UserTypeEnum utm:UserTypeEnum.values()){ if(utm.getType()==type){ return utm.getName(); } } throw new IllegalArgumentException("没有该\""+type+"\"对应的用户类型");//非法参数异常 } }
package cn.hncu.bookStore.user.vo; import java.io.Serializable; import cn.hncu.bookStore.user.common.UserTypeEnum; /** * *@author<a href="mailto:2402201666@qq.com">xzm</a> */ public class UserModel implements Serializable{ private static final long serialVersionUID = 1L; private String uuid,name,pwd;//用户编号,用户名称,用户密码 private int type;//用户类型 public UserModel() { } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public int getType() { return type; } public void setType(int type) { this.type = type; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((uuid == null) ? 0 : uuid.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; UserModel other = (UserModel) obj; if (uuid == null) { if (other.uuid != null) return false; } else if (!uuid.equals(other.uuid)) return false; return true; } @Override public String toString() { return uuid + "," + name +"," + UserTypeEnum.getNameByType(type); } }
package cn.hncu.bookStore.user.vo; public class UserQueryModel extends UserModel{ private static final long serialVersionUID = 1L; }
dao层:
package cn.hncu.bookStore.user.dao.dao; import java.util.List; import cn.hncu.bookStore.user.vo.UserModel; import cn.hncu.bookStore.user.vo.UserQueryModel; public interface UserDAo { /** * 注册一个新用户,如果该用户存在,则不能创建 * @param user * 待创建的用户 * @return * 如果创建成功,则返回true,否则返回false */ public boolean create(UserModel user); /** * 删除一个用户,如果该用户不存在,则删除失败 * @param uuid * 待删除用户的uuid * @return * 如果删除成功则返回true,否则返回false */ public boolean delete(String uuid); /** * 更新用户信息,如果用户不存在,则不能更新 * @param user * 待更新信息的用户 * @return * 如果更新成功返回true,否则返回false */ public boolean update(UserModel user); /** * 查询一个用户的数据 * @param uuid * 待查询信息的用户编号 * @return * 如果用户存在,返回指定 uuid的用户对象,否则返回null */ public UserModel getSingle(String uuid); /** * 根据查询值对象约束的条件,返回所有满足user的用户对象集合 * @param user * 查询值对象 * @return * 如果有满足查询值对象约束的条件的用户,则返回用户对象集合,否则返回空集合 */ public List<UserModel> getByCondition(UserQueryModel user); /** * 获取文件中所有用户对象 * @return * 返回文件中所有用户对象 */ public List<UserModel> getAll(); }
package cn.hncu.bookStore.user.dao.impl; import java.util.ArrayList; import java.util.List; import cn.hncu.bookStore.user.dao.dao.UserDAo; import cn.hncu.bookStore.user.vo.UserModel; import cn.hncu.bookStore.user.vo.UserQueryModel; import cn.hncu.bookStore.utils.FileIOUtil; public class UserDAOFileImpl implements UserDAo { private final static String FILE_NAME="a.txt"; @Override public boolean create(UserModel user) { if(user==null){//如果待注册的用户信息为null,则不能注册,返回false return false; } List<UserModel> list=getAll();//获取文件中已存在的所有用户对象 for(UserModel u:list){//遍历 if(u.getUuid().equals(user.getUuid())){//如果此用户已存在,则不能注册 return false; } } //经过上面的遍历,说明user不存在,则可以注册 list.add(user); return FileIOUtil.writeToFile(list, FILE_NAME); } @Override public boolean delete(String uuid) { List<UserModel> list=getAll(); for(int i=0;i<list.size();i++){//遍历 UserModel u=list.get(i); if(u.getUuid().equals(uuid)){ list.remove(i);//删除 return FileIOUtil.writeToFile(list, FILE_NAME); } } return false; } @Override public boolean update(UserModel user) { List<UserModel> list=getAll(); for(int i=0;i<list.size();i++){ UserModel u=list.get(i); if(u.getUuid().equals(user.getUuid())){ list.set(i, user);//重置编号为user.getUuid()的用户 return FileIOUtil.writeToFile(list, FILE_NAME); } } return false; } @Override public UserModel getSingle(String uuid) { List<UserModel> list=getAll(); for(UserModel u:list){ if(u.getUuid().equals(uuid)){ return u; } } return null; } @Override public List<UserModel> getByCondition(UserQueryModel user) { List<UserModel> list=getAll(); List<UserModel> reslist=new ArrayList<UserModel>(); for(UserModel u:list){ if(user.getUuid()!=null && user.getUuid().trim().length()>0){ if(!user.getUuid().trim().equals(u.getUuid())){ continue; } } if(user.getName()!=null && user.getName().trim().length()>0){ if(u.getName().indexOf(user.getName())==-1){ continue; } } if(user.getType()>0){ if(u.getType()!=user.getType()){ continue; } } reslist.add(u); } return reslist; } @Override public List<UserModel> getAll() { return FileIOUtil.readFromFile(FILE_NAME); } }
package cn.hncu.bookStore.user.dao.factory; import cn.hncu.bookStore.user.dao.dao.UserDAo; import cn.hncu.bookStore.user.dao.impl.UserDAOFileImpl; public class UserDAOFactory { private UserDAOFactory(){ } public static UserDAo getUserDAo(){ return new UserDAOFileImpl(); } }
业务逻辑层:
package cn.hncu.bookStore.user.business.ebi; import java.util.List; import cn.hncu.bookStore.user.vo.UserModel; import cn.hncu.bookStore.user.vo.UserQueryModel; public interface UserEbi { public boolean create(UserModel user); public boolean delete(String uuid); public boolean update(UserModel user); public UserModel getSingle(String uuid); public List<UserModel> getByCondition(UserQueryModel user); public List<UserModel> getAll(); public abstract List<UserModel> getAllIn(); public List<UserModel> getAllOut(); }
package cn.hncu.bookStore.user.business.ebo; import java.util.List; import cn.hncu.bookStore.common.uuidModelConstance; import cn.hncu.bookStore.common.uuid.dao.factory.uuidDAOFactory; import cn.hncu.bookStore.user.business.ebi.UserEbi; import cn.hncu.bookStore.user.common.UserTypeEnum; import cn.hncu.bookStore.user.dao.dao.UserDAo; import cn.hncu.bookStore.user.dao.factory.UserDAOFactory; import cn.hncu.bookStore.user.vo.UserModel; import cn.hncu.bookStore.user.vo.UserQueryModel; public class UserEbo implements UserEbi { //注入 UserDAo dao = UserDAOFactory.getUserDAo(); @Override public boolean create(UserModel user) { String uuid=uuidDAOFactory.getUuidDAO().getNextNum(uuidModelConstance.User); user.setUuid(uuid); return dao.create(user); } @Override public boolean delete(String uuid) { return dao.delete(uuid); } @Override public boolean update(UserModel user) { return dao.update(user); } @Override public UserModel getSingle(String uuid) { return dao.getSingle(uuid); } @Override public List<UserModel> getByCondition(UserQueryModel user) { return dao.getByCondition(user); } @Override public List<UserModel> getAll() { return dao.getAll(); } @Override public List<UserModel> getAllIn() { UserQueryModel user=new UserQueryModel(); user.setType(UserTypeEnum.IN.getType()); return dao.getByCondition(user); } public List<UserModel> getAllOut() { UserQueryModel user=new UserQueryModel(); user.setType(UserTypeEnum.OUT.getType()); return dao.getByCondition(user); } }
package cn.hncu.bookStore.user.business.factory; import cn.hncu.bookStore.user.business.ebi.UserEbi; import cn.hncu.bookStore.user.business.ebo.UserEbo; public class UserEbiFactory { private UserEbiFactory() { } public static UserEbi getUserEbi(){ return new UserEbo(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍java书店系统毕业设计 总体设计(1),包括了java书店系统毕业设计 总体设计(1)的使用技巧和注意事项,需要的朋友参考一下 java书店系统项目功能需求: 1、能进行操作用户的注册,修改基本信息,删除和查询。 2、能对图书的基本信息进行增加、删除、修改和查询操作。 3、能填写进货单,一张进货单带有多条具体的进货信息,进货的书籍必须是图书管理里面已经有的;进货的同时修改库存对应书
这次周总的语气显得有些焦急,绝影预料都有什么重要的事情发生。他说:“小绝啊,那个KIPACS的BUG你现在能不能抽点时间加紧修一修。明天我们就要去为一家医院安装,时间很紧啊。” 周总说的KIPACS是公司一个软件产品,以前一直是小周在做,虽然名字叫PACS,后来绝影才发现,这个软件产品其实还算不上真正意义上的PACS。小周一直拿它当宝贝似的,还记得前不久刚刚把视频卡模块加进去的时候他一个人在那兴奋
本文向大家介绍javascript框架设计读书笔记之模块加载系统,包括了javascript框架设计读书笔记之模块加载系统的使用技巧和注意事项,需要的朋友参考一下 模块加载,其实就是把js分成很多个模块,便于开发和维护。因此加载很多js模块的时候,需要动态的加载,以便提高用户体验。 在介绍模块加载库之前,先介绍一个方法。 动态加载js方法: 由于司徒正美使用了它写的mass框架来介绍模块加载,而业
伴随着移动互联的大潮,当今越来越多的网站已经从网页模式进化到了 Webapp 模式。它们运行在现代的高级浏览器里,使用 HTML5、 CSS3、 ES6 等更新的技术来开发丰富的功能,网页已经不仅仅是完成浏览的基本需求,并且webapp通常是一个单页面应用,每一个视图通过异步的方式加载,这导致页面初始化和使用过程中会加载越来越多的 JavaScript 代码,这给前端开发的流程和资源组织带来了巨大
模块系统 Rust有两个与模块 (module) 系统相关的独特术语:crate和module, 其中包装箱 (crate) 与其它语言中的 libary 或者 package 作用一样。 每个包装箱都有一个隐藏的根模块,在根模块下可以定义一个子模块树, 其路径采用::作为分隔符。包装箱由条目 (item) 构成,多个条目通过模块组织在一起。 定义模块 使用mod关键字定义我们的模块: // in
概述 本章节介绍如何从一个系统的数据库设计模型出发,一步步设计一个系统。 在软件项目(尤其是外包软件项目)中,通常有两种情况: 客户提供软件需求书; 客户提供原型设计; 对于以上两种情况的项目,在开发的流程上是有很大的差别的,最大的差别就在于页面交互上。 客户提供软件需求书:页面数量及形态不确定,带来的复杂性也不确定;(所以,为了固化需求,通常会跟客户做出原型或者UI进行需求确认,跟客户的合同也会