接上篇文章
导航→JSP+SQL通过MVC框架实现超市管理系统(上)
(5)销售页面
通过这个销售页面,可以向数据库添加销售情况,并显示。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Validate vd = new Validate();
String name = vd.getUnicode(request.getParameter("name"));
String num = vd.getUnicode(request.getParameter("num"));
String sql = "insert into xiaosou(shangpinid,sums) values('"+name+"','"+num+"')";
InsertUpdateDelBean iudb = new InsertUpdateDelBean();
int tem = iudb.insertANDupdateANDdel(sql);
if(tem == -1){
request.setAttribute("error", "1");
}else{
request.setAttribute("ok", "1");
}
RequestDispatcher rd=request.getRequestDispatcher("/addxiaosou.jsp");
rd.forward(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
(6)查询销售
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Validate vd = new Validate();
String name = vd.getUnicode(request.getParameter("name"));
String summax = vd.getUnicode(request.getParameter("summax"));
String summin = vd.getUnicode(request.getParameter("summin"));
String sql = "select a.id as sid,b.id as xid,name,danjia,sums from shangpin a,xiaosou b where a.id=b.shangpinid ";
String args[] = {
"sid","xid","name","danjia","sums"};
if(name != null && !name.equals("")){
sql += "and name like '%"+name+"%'";
}
if(summax != null && !summax.equals("")){
sql += "and sums>"+summax;
}
if(summin != null && !summin.equals("")){
sql += "and sums<"+summin;
}
SelectBean sb = new SelectBean();
ArrayList al = sb.select(sql, args);
request.setAttribute("xiaolist", al);
RequestDispatcher rd=request.getRequestDispatcher("/caxiaosou.jsp");
rd.forward(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
(7)销售详情
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Validate vd = new Validate();
String tem = vd.getUnicode(request.getParameter("tem"));
String id = vd.getUnicode(request.getParameter("id"));
String sql = "select * from shangpin where id='"+id+"'";
String [] args = {
"id","name","candi","jinjia","danjia","danwei","zhonglei","kucun","supplierid"};
String str ="";
SelectBean sb = new SelectBean();
ArrayList al = sb.select(sql, args);
request.setAttribute("dshangpin", al);
if(tem != null && tem.equals("1")){
str = "/shangpinlist.jsp";
}else{
str = "/update.jsp";
}
RequestDispatcher rd=request.getRequestDispatcher(str);
rd.forward(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
系统的特色与关键技术
包冲突和包管理的问题
在设计过程中出现The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files 报错,导致项目无法正常运行。通过查找资料,找到了解决办法。因为我安装了jre1.8版本,由于版本不兼容的缘故,导致servlet包出错,当切换为软件自带的SUN jdk1.6时报错消失。
属性名称及类型管理
在设计过程中,需要统一数据库、Javabean和前台表单属性的名称,保证其对应关系正确,如在数据库设计的过程中,需要避免使用关键字user作为表名,以及在使用日期类型作为数据库字段的数据类型时,使用datetime类型,避免使用date类型后出现前台页面和后台数据库时间不一致的问题。
心得体会
设计的过程中,我掌握了很多了很多关于本系统的编程知识,并对这种成熟并广泛应用的技术进行了深入的学习。设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,认真的向老师请教,从老师那里我学到了很多的知识,老师对我的指导起到了画龙点睛的作用。
以往我们曾经有过多次设计的体会,但只是设计一个模块或一个小系统,而这一次毕业设计是综合所学的管理和计算机的知识来设计一个适合运行管理的系统软件。要想设计使用户满意,就需要我们付出更多的努力。我在设计中经常出现一些问题不知该如何解决,在此时许多同学给予了我们帮助。在设计的过程中增加了于实际接触的机会,不仅培养了我的自学和编程能力,让我在即将离开学校进入社会之前有了一定的资本,提高了我与人沟通的能力。
程序设计中的体会
在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。一个管理信息系统的设计,不可能一步到位,还需要不断的完善和补充。同时,系统中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。
通过这次课设,大大扩展了我们的思维,提高了用理论知识解决实际问题的能力,这是一种理论结合实际的能力,不同于我们的书本知识,课程设计对于我们的提升是课本知识所不能带来的。
课程设计的完成,不仅仅需要个人能力,更需要的是团队合作能力,互相学习的能力。没有设计思路的时候,我们可以和同伴一起商量,共同探讨,对于不同模块,我们有时设计思路不一样,我们可以共同讨论出一个更好的方案。在设计时和同学相互交流各自的想法也是很重要的,不同的人对问题的看法总有差异,我们可以从交流中获得不同的思路,他人的设计也可能有比你出色的地方,很好的借鉴,并在同伴的商讨中选择最优方案最终一定会得到最好的设计方法。