介绍:
现在写到了进货模块了,这应该是本书店系统最难的模块了吧。
本次多写了一个工具类:
把字符串比较的代码抽取出来写了一个类了。因为需要比较的字符串比较多。
还有进货模块的值对模块,分为了4个部分。
1、进货值对象
2、进货查询值对象
3、进货明细值对象
4、进货明细查询值对象。
进货模块表现层的List模块,Add模块。
数据层模块和逻辑层模块。写好了大部分功能。
可以执行添加进货。
list界面有2个list列表,一个是进货列表,一个是进货明细列表。
这2个表示有联系的!选中进货列表的某一行时,需要在另外一个列表中显示这个进货的明细!
后期会对列表一的显示改一下的,时间会改成**年月日 ::
(取系统时间显示!)
进货人不会再只显示编号。会直接显示名字的!
后面有这次增加的代码模块,
然后,其他模块的源代码可能有部分修改,
其他模块的源代码百度云链接(CSDN上传文件好像有一天的缓冲期,我刚刚上传的,现在还找不到,只能先贴出百度云的文件的源代码链接):
(目前我的所有源代码:)
http://pan.baidu.com/s/1jHOgFqQ
展示图片:
部分的代码模块:
工具类:StringComparison类:
package cn.hncu.bookStore.util; /** * 工具类 * 字符串比较 * @author 陈浩翔 * * @version 1.0 */ public class StringComparison { /** * @param str1---需要比较的字符串 * @param str2---被比较的字符串 * @return--- 返回0 , 2个字符串相同,<br/> * 返回-1,str1和str2不相同,<br/> * 返回1,str1是str2的子串(忽略str1两端空格)<br/> * 返回2,说明str1为null或者str1全部为空格<br/> */ public static int stringComp(String str1,String str2){ if(str1==null||!(str1.trim().length()>0)){ return 2; } //字符串完全相同 if(str1!=null&&str1.trim().length()>0){ if(str1.equals(str2)){ return 0; } } //模糊匹配(忽略两端空格) if(str1!=null&&str1.trim().length()>0){ if(str2.indexOf(str1.trim())!=-1){ return 1; } } return -1; } }
注意一个问题:
要使用对象流读取文件:
这个类必须实现Serializable接口!!!!!
值对象模块:
进货值对象:InMainModel:
package cn.hncu.bookStore.in.vo; import java.io.Serializable; /** * 进货管理值对象封装 * @author 陈浩翔 * * @version 1.0 */ public class InMainModel implements Serializable, Comparable<InMainModel>{ //进货单编号 private String uuid; //进货时间 private long inDate; //进货人员编号 private String inUserId; /* 如果某个字段是外键,同时又需要在当前表中相应表现层显示出用户能看得懂 的信息,则需要补一个专用于信息显示(给用户看)的字段。 */ private String inUserName; public String getInUserName() { return inUserName; } public void setInUserName(String inUserName) { this.inUserName = inUserName; } /** * * @return ---返回进货单编号(String型) */ public String getUuid() { return uuid; } /** * * @param uuid---设置进货单编号(String型) */ public void setUuid(String uuid) { this.uuid = uuid; } /** * * @return---返回进货时间(long型) */ public long getInDate() { return inDate; } /** * * @param inDate---设置进货时间(long型) */ public void setInDate(long inDate) { this.inDate = inDate; } /** * * @return---返回进货人员编号(String型) */ public String getInUserId() { return inUserId; } /** * * @param inUserId---设置进货人员编号(String型) */ public void setInUserId(String inUserId) { this.inUserId = inUserId; } @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; InMainModel other = (InMainModel) 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 + ", " + inDate + ", " + inUserId; } @Override public int compareTo(InMainModel o) { return Integer.parseInt(uuid)-Integer.parseInt(o.uuid); } }
进货明细值对象类:InDetailModel
package cn.hncu.bookStore.in.vo; import java.io.Serializable; /** * 进货明细管理的值对象封装 * @author 陈浩翔 * * @version 1.0 */ public class InDetailModel implements Serializable{ //进货明细编号 private String uuid; //进货单编号 private String inId; //图书编号 private String bookId; //进货数量 private int sumNum; //进货总金额 private double sumMoney; //为把书名显示给用户看,给bookUuid添加一个bookName属性 private String bookName; public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getUuid() { return uuid; } public void setUuid(String uuid) { this.uuid = uuid; } public String getInId() { return inId; } public void setInId(String inId) { this.inId = inId; } public String getBookId() { return bookId; } public void setBookId(String bookId) { this.bookId = bookId; } public int getSumNum() { return sumNum; } public void setSumNum(int sumNum) { this.sumNum = sumNum; } public double getSumMoney() { return sumMoney; } public void setSumMoney(double sumMoney) { this.sumMoney = sumMoney; } @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; InDetailModel other = (InDetailModel) 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 +", "+bookName + ", " + sumNum + "本, " + sumMoney + "元"; } }
进货查询值对象类:InMainQueryModel
package cn.hncu.bookStore.in.vo; /** * 进货查询值对象封装 * @author 陈浩翔 * * @version 1.0 */ public class InMainQueryModel extends InMainModel { //需要查询的最大时间 private long inDate2; /** * * @return---需要查询的最大时间值 */ public long getInDate2() { return inDate2; } /** * * @param inDate2---设置需要查询的最大时间 */ public void setInDate2(long inDate2) { this.inDate2 = inDate2; } }
进货明细查询值对象类:InDetailQueryModel
package cn.hncu.bookStore.in.vo; /** * 进货明细查询值对象封装 * @author 陈浩翔 * * @version 1.0 */ public class InDetailQueryModel extends InDetailModel { //需要查询的最大进货数量 private int sumNum2; //需要查询的最大进货金额 private double sumMoney2; /** * * @return---返回需要查询的最大进货数量 */ public int getSumNum2() { return sumNum2; } /** * * @param sumNum2---设置需要查询的最大进货数量 */ public void setSumNum2(int sumNum2) { this.sumNum2 = sumNum2; } /** * * @return---返回需要查询的最大进货金额 */ public double getSumMoney2() { return sumMoney2; } /** * * @param sumMoney2---设置需要查询的最大进货金额 */ public void setSumMoney2(double sumMoney2) { this.sumMoney2 = sumMoney2; } }