Ⅰ 内容和目标简介
本系统主要包含用户、图书、进货、销售和库存五个模块,界面采用Swing,后台采用MVC模式,主要实现功能如下:
(1)能进行操作用户的注册、登录、删除、查询和信息修改。
(2)能实现对图书基本信息的增删改查
(3)能填写进货单,一张进货单包含多条具体的货物明细,进货的书籍必须是图书数据库中已经存在的,进货的同时修改库存信息
(4)能填写销售单,一张销售单包含多条具体销售信息,销售的书籍必须是图书数据库中已经存在的,销售数量不能超过当前库存的数量,销售的同时修改库存信息
(5)对于库存,可以查看明细,可以按照条件查询某书的库存值
(6)权限方面做固定的权限控制。
注意:每一条进货人明细都对应着多条进货书籍明细。
注意:每一个销售人明细都对应着多条销售书籍明细。
注意:表的设计过程中,要注意主键和外键。
Ⅲ 分层、分包,系统的整个框架的搭建:
–》新建java项目,组织名cn.javass , 项目名 jxc ,之后的分包规则:
整个系统的框架如上图所示:
(1)panels层调用business,business层调用dao层,三层之间model的传递用vo封装。所以,我们可以在编码的时候先写vo层,再写dao层,接着写business层,最后在panels层中调用逻辑层。
(2)界面和ebi交互,ebi中的接口负责为界面组织提供数据,界面所需要的所有数据都是ebi提供的。但ebi只是接口声明,具体实现在ebo中实现。
(3)dao层会提供最基本的增删改查实现,提供与数据库的联系。同样,dao.dao中只是接口声明,dao.Impl中主要实现接口。逻辑层在调用数据层的时候,对于简单的增删改查,ebo直接转发dao即可,如果ebo需要组织更为复杂的数据给界面,则可以直接通过操作QueryModel来实现对数据的组织。
(4)数据层主要利用vo的model实现增删改查,Ebo中主要负责为界面组织所需要的数据。
Ⅳ 接下来,我来总结User层的代码的示例写法:
1.vo层
(1)关于值对象模式 :每一个模块对应一个Model类,描述这个类的属 性都作为这个类的filed
(2)对应的get和set方法
(3)用主键来重写equals和hascode
(4)实现可序列化
(5)重写toString()方法,方便按照需要的格式显示各字段的值。
(6)用UserQueryModel.java来传model,而不是采用UserModel.java来传model.好处是当字段中包含范围值时,采用UserModel.java不方便处理。
—-》 eg: UserModel.java
public class UserModel implements Serializable {
private String uuid; private String name; private String pwd; 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 + ", " + type+ ", " + pwd + "]"; }
}
//—-》用一个包含范围值的来作为实例:
——》InMainQueryModel.java
package cn.javass.jxc.in.vo;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/83321.html