网上商城—管理员增加商品

管理员增加商品(图书、服装、电器、零食)

先上本人的项目相应图片:
这里写图片描述
这里写图片描述

功能描述:

当以管理员的身份登录时,页面跳转到相应的管理商铺(shopkeeper.jsp)的页面(有关管理员和普通用户身份的验证请参看本人的其他博客),点击“增加图书、增加服装、增加电器、增加零食”都会跳转到填写要增加的商品信息的addproduct.jsp页面,在该页面的form表单中填写要增加的商品的信息,然后点击“增加”按钮将相应的信息提交给form表单对应的action“addProduct.do(AddProductServlet)”,在AddProductServlet中获取表单提交的信息,调用*DaoImpl的add()方法进行插入数据库的操作,然后进行页面跳转,如若添加成功跳转到ok.jsp,否则跳转到fail.jap。

实现类:

shopkeeper.jsp

addproduct.jsp(添加商品信息页)

ok.jsp(提示操作成功)

failjsp(提示操作失败)

AddProductServlet.java(获得添加的商品信息,调用数据库操作并进行页面跳转)

BookDaoImpl.java(接口BookDao.java)(定义一个方法实现将要添加的图书插入数据库的操作)

ClothesDaoImpl.java(接口ClothesDao.java)(定义一个方法实现将要添加的服装插入数据库的操作)

ElectricDaoImpl.java(接口ElectricDao.java)(定义一个方法实现将要添加的电器插入数据库的操作)

SnacksDaoImpl.java(接口SnacksDao.java)(定义一个方法实现将要添加的零食插入数据库的操作)

注意:

1、要添加四种商品,而我只定义了一个AddProductServlet,那么怎么判断要添加的商品是哪种类别呢?

在我的添加商品信息(addproduct.jsp)的页面中有四个按钮“增加图书、增加服装、增加电器、增加零食”,当你要增加某种商品时只需点击相应的增加按钮即可,这里我用到了按钮的name=” submit “属性和value=” 增加* “属性;当点击按钮将表单提交给addProduct.do之后,servlet会通过String submit = requst.getParameter(“submit”);方法获取到按钮的value属性的值,然后进行判断submit.contains(“圖書),通过判断结果来调用相应的数据库插入方法。还有一种方法:当点击按钮将带有要添加的商品信息的form表单提交给addProduct.do时传回一个参数,例如ddd=i,然后在servlet中利用ddd的值来进行相应的调用。

2、在添加数据库时有关图片的上传
,修改form表单的enctype=”multipart/form-data”(post提交方式上传字节型的大对象),上传相应的内容到数据库,在数据库表中承载该image的应该是一个Blob类型的大对象,该操作应该是这样实现的,可是我之前在创建数据库表的时候有关image使用的是一个图片的地址imgURL,相应的图片存放在项目的WebRoot/images下,所以这里要实现以上操作该动太大,关于这个问题我的解决是(求不嘲笑啊-_-||):将要添加的图片手动放到WebRoot/images下,然后上传数据库时只给出相应图片的URL,同时也没有用到文件上传。以后开始一个项目创建数据库表什么之类的之前一定要考虑全面啊啊!

代码:

shopkeeper.jsp

<div class="main">
        <d1>
        <h1>增加商品</h1>
            <dt><a href="addproduct.jsp">增加图书</a></dt>
            <dt><a href="addproduct.jsp">增加服装</a></dt>
            <dt><a href="addproduct.jsp">增加零食</a></dt>
            <dt><a href="addproduct.jsp">增加电器</a></dt>
        </d1>
</div>

addproduct.jsp(添加商品信息页)

<form method="post" action="addProduct.do" >
                    <table>
                        <tr>
                            <td class="field">商品ID:</td>
                            <td><input class="text" type="text" name="id" /></td>
                        </tr>
                        <tr>
                            <td class="field">商品名称:</td>
                            <td><input class="text" type="text" name="name" /></td>
                        </tr>
                        <tr>
                            <td class="field">商品数量:</td>
                            <td><input class="text" type="text" name="count" /></td>
                        </tr>
                        <tr>
                            <td class="field">商品价格:</td>
                            <td><input class="text" type="text" name="price" /></td>
                        </tr>
                        <tr>
                            <td class="field">商品图片:</td>
                            <td><input class="text" type="text" name="imgURL"/>格式:images/*.jpg</td>
                        </tr>
                        <tr>
                            <td class="field">商品标题:</td>
                            <td><textarea name="title"></textarea></td>
                        </tr>
                        <tr>
                            <td class="field">商品制造商:</td>
                            <td><textarea name="manufacture"></textarea></td>
                        </tr>
                        <tr>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="增加圖書" /></label></td>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="增加服裝" /></label></td>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="增加電器" /></label></td>
                            <td><label class="ui-blue"><input type="submit" name="submit" value="增加零食" /></label></td>
                        </tr>                       
                    </table>
                </form>

AddProductServlet.java(获得添加的商品信息,调用数据库操作并进行页面跳转)

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ymw.dao.BooksDao;
import com.ymw.dao.BooksDaoImpl;
import com.ymw.dao.ClothesDao;
import com.ymw.dao.ClothesDaoImpl;
import com.ymw.dao.ElectricDao;
import com.ymw.dao.ElectricDaoImpl;
import com.ymw.dao.SnacksDao;
import com.ymw.dao.SnacksDaoImpl;
import com.ymw.domain.Product;

public class AddProductServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        Product product=new Product();
        //获取addproduct.jsp表单中用户输入的信息
        String submit=request.getParameter("submit");
        System.out.println(submit);

        String id=request.getParameter("id");
        String name=request.getParameter("name");
        String title=request.getParameter("title");
        String imgURL=request.getParameter("imgURL");
        String manufacture=request.getParameter("manufacture");
        String count=request.getParameter("count");
        String price=request.getParameter("price");

        System.out.println(id + name + title + manufacture + count + price);
        //将从前台表单中获取得值放进product对象中
        product.setId(Integer.parseInt(id));
        product.setName(name);
        product.setTitle(title);
        product.setImgURL(imgURL);
        product.setManufacture(manufacture);
        product.setCounts(Integer.parseInt(count));
        product.setPrice(Double.parseDouble(price));
        //判斷ddd的值並調用相應的方法
        if (submit.contains("圖書")) {//增加圖書
            //将用户输入的信息添加到数据库並進行頁面跳轉
            System.out.println("進入增加圖書的方法……");
            BooksDao booktDao=new BooksDaoImpl();
            booktDao.addBook(product);
            request.getRequestDispatcher("addproduct.jsp").forward(request, response);
        }else if (submit.contains("服裝")) {//增加服裝
            //将用户输入的信息添加到数据库並進行頁面跳轉
            ClothesDao clothesDao=new ClothesDaoImpl();
            clothesDao.addClothes(product);
            request.getRequestDispatcher("addproduct.jsp").forward(request, response);
        }else if (submit.contains("電器")) {//增加電器
            //将用户输入的信息添加到数据库並進行頁面跳轉
            ElectricDao productDao=new ElectricDaoImpl();
            productDao.addElectric(product);
            request.getRequestDispatcher("addproduct.jsp").forward(request, response);
        }else if (submit.contains("零食")){//增加零食m 
            //将用户输入的信息添加到数据库並進行頁面跳轉
            SnacksDao productDao=new SnacksDaoImpl();
            productDao.addSnack(product);
            request.getRequestDispatcher("addproduct.jsp").forward(request, response);
        }

    }

}

BookDaoImpl.java(接口BookDao.java)(定义一个方法实现将要添加的图书插入数据库的操作)
(本文只给出addBook()方法,addClothes()、addElectric()、addSnack()只有sql语句中执行的表不一样,其余都一样)

public class BooksDaoImpl implements BooksDao {

    @Override
    public String addBook(Product product) {

        Connection connection = DBUtil.getConnection();
        PreparedStatement preparedStatement = null; 
        try {
            String sql = "insert into books(id,imgURL,title,price,name,manufacture,counts) values(?,?,?,?,?,?,?);";

            preparedStatement = connection.prepareStatement(sql);

            //綁定參數
            preparedStatement.setInt(1,product.getId());
            preparedStatement.setString(2, "'"+product.getImgURL()+"'");
            preparedStatement.setString(3,"'"+ product.getTitle()+"'");
            preparedStatement.setDouble(4, product.getPrice());
            preparedStatement.setString(5,"'"+ product.getName()+"'");
            preparedStatement.setString(6,"'"+ product.getManufacture()+"'");
            preparedStatement.setInt(7,product.getCounts());
            //執行sql語句
            preparedStatement.executeUpdate();      
        } catch (SQLException e) {
            throw new DataBaseException();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        }
        return "ok";
    }
}

写博客会上瘾……

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据库设计报告 题 目 商品订购管理系统 学生姓名 学 号 学 院 计算机与软件学院 专 业 指导教师 二O一六 年 六 月 十 六 日 目 录 1引言 2 1.1 课题内容 2 1.2 课题要求 2 3系统总体设计 3 3.1 系统模块设计 3 3.1.1 查询模块设计 3 3.1.2 添加模块设计 4 3.1.3 删除模块设计 5 3.1.4 修改模块设计 5 3.2 数据库设计 6 3.2.1数据库概念设计 6 3.2.2数据库逻辑结构设计 8 4系统实现 9 4.1 查询模块实现 9 4.2 添加模块实现 11 4.3 删除模块实现 12 4.4 修改模块实现 13 4.5 主要界面实现 14 商品订购管理系统 1引言 随着科学技术的不断发展,计算机网络技术日渐成熟,其强大的功能 已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 商品订购现象在现实生活中十分常见,在各个领域中都存在着订购信息的流通。因此, 商品订购系统是一种十分重要的系统。 基于商品订购系统的建立,数据库作用十分重要,在数据库中按照规定要求存放着系统 所需的信息。系统主要运用与商品订购的管理,包括客户信息、商品信息、客户订购信 息。管理员可以通过相应的模块,对信息进行增删改查。 1.1 课题内容 设计一个商品订购管理系统,管理员通过系统能够对客户信息、商品信息、客户订购信 息进行管理,实现基本的查询、添加、删除等功能。系统能够在不同界面浏览户信息、 商品信息、客户订购信息,并能够进行管理操作。 1.2 课题要求 (1)客户信息(客户编号、客户姓名、出生日期、性别、所在省市、联系电话、是否V IP、备注)、商品信息(商品编号、商品类别、商品名称、单价、生产商、保质期、库 存量、备注)、客户订购信息(客户编号、商品编号、订购时间、数量、需要日期、付 款方式、送货方式)要单独保存; (2)系统功能模块应包括信息的增删改查。 2系统需求分析 2.1 功能需求 查询功能:管理员通过该功能对所需要的信息进行查询,系统将查询到的信息显示到界 面中。 添加功能:通过该功能,管理员能够将新的信息添加到系统中,系统将数据加入数据库 中并显示在界面中。 删除功能:该功能实现数据的删除。管理员通过输入相关信息,系统查询到该信息后删 除该条信息及相关信息。 修改功能:功能实现对数据的修改,管理员输入所需要修改的信息后,系统执行,数据 库信息修改,显示在界面中。 3系统总体设计 3.1 系统模块设计 根据系统的需求分析对系统进行模块划分,客户信息、商品信息、客户订购信息三大模 块。根据模块的划分,对系统进行总体设计,得到系统的模块划分总体功能图如图3.1所 示。 图3.1商品订购管理系统 3.1.1 查询模块设计 该模块主要用于用数据的查询。系统通过比较所输入的信息,在数据库相关表中查询出 信息并显示在界面中,若查询不到相关信息着系统跳出提示。具体流程图如图3.2所示。 图3.2查询模块流程图 3.1.2 添加模块设计 该模块主要用于用信息的添加。系统通过比较所输入的关键信息,确认数据库中无重复 后,将新信息添加到数据库中,否则报错。具体流程图如图3.3所示。 图3.3添加模块流程图 3.1.3 删除模块设计 该模块主要用于用信息的删除。系统通过查询输入的信息,将信息从数据库中删除,若 查询不到相关信息则报错。具体流程图如图3.4所示。 图3.4删除模块流程图 3.1.4 修改模块设计 该模块主要用于用信息的修改。系统通过查询输入的信息,将新的信息修改到所查询到 的信息中,若查询不到相关信息则报错。具体流程图如图3.5所示。 图3.5修改模块流程图 3.2 数据库设计 3.2.1数据库概念设计 通过对多商品订购管理系统功能及数据流图分析,设计如下的数据项和数据结构,并 得到以下系统的实体—联系图,即E—R图: 客户信息,包括的数据项有:客户编号、客户姓名、出生日期、性别、所在省市、联系 电话、是否VIP、备注,客户实体图如图3.6所示。 图3.6客户信息E-R图 商品信息,包括的数据项有:商品编号、商品类别、商品名称、单价、生产商、保质期 、库存量、备注,商品实体图如图3.7所示。 图3.7商品信息E-R图 客户订购信息,包括的数据项有:客户编号、商品编号、订购时间、数量、需要日期、 付款方式、送货方式,客户订购实体图如图3.8所示。 图3.8客户订购信息E-R图 订购关系,包括的客户信息、商品信息、客户订购信息,E-R图如图3.9所示。 图3.9订购关系E-R图 3.2.2数据库逻辑结构设计 根据系统的总体设计、E-R图分析,可以得到系统优化后的逻辑模型: 客户信息,包括客户编号、客户姓名、出生日期、性别、所在省市、联系电话、是否VI P、备注,客户信息表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值