网上书店 订阅
顾名思义,网站式的书店。是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的在线销售,也有音碟、影碟的在线销售。而且网站式的书店对图书的管理更加合理化,信息化。售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。但网上书店的真实性是消费者的最大顾虑,这也是网上书店还不被大多数消费者所接受的原因之一。 展开全文
顾名思义,网站式的书店。是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的在线销售,也有音碟、影碟的在线销售。而且网站式的书店对图书的管理更加合理化,信息化。售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。但网上书店的真实性是消费者的最大顾虑,这也是网上书店还不被大多数消费者所接受的原因之一。
信息
外文名
online bookstore
特    点
方便快捷
中文名
网上书店
网上书店功能特点
在网上书店买书,可以查到所买图书的更多信息,因为网上书店是一个网站,它有它独特的售书方式和功能。如用户注册会员功能等,会员类型有:普通会员、高级会员、金牌会员等。有的网上书店有会员积分设置,如达到一定积分时自动成为高级会员,高级会员会有优惠和特别的服务。还有就是支付方式了,一般网上书店都有三种类型的支付方式:汇款类支付、在线支付、其他支付方式,其中在线支付只要到支付平台开户后,将所获开户信息填入即可。当在网上书店购书后,用户所购图书都在网站上有记录,方便用户查询。
收起全文
精华内容
参与话题
问答
  • 学习JavaWeb后做了一个网上书城完整项目

    万次阅读 多人点赞 2019-08-29 18:17:16
    这个网上书城系统使用Eclipse JavaEE开发,数据库为mysql5.5,服务器为tomcat8.5。本系统包含九个模块,前台模块分为:用户模快,分类模块,图书模块,购物车模块,订单模块;后台模块分为:管理员模块,分类管理模...

    这个网上书城系统使用Eclipse JavaEE开发,数据库为mysql5.5,服务器为tomcat8.5。本系统包含九个模块,前台模块分为:用户模快,分类模块,图书模块,购物车模块,订单模块;后台模块分为:管理员模块,分类管理模快,图书管理模快,订单管理模块。书城界面简洁,易于操作,简单易懂,代码均有注释,各模块功能完善。系统前端使用了“黑马程序员_JavaWeb网上图书商城完整项目资料”的项目原型,后端代码由自己重新编写实现。各大模块的功能描述:前台:
     1). 用户模块功能有:
       * 用户注册: 
         > 表单页面是jQuery做校验(包含了ajax异步请求)
           # 在输入框失去焦点时进行校验;
           # 在提交时对所有输入框进行校验;
           # 在输入框得到焦点时,隐藏错误信息。
         > 表单页面使用一次性图形验证码;
         > 在servlet中再次做了表单校验。


       * 用户登录:
         > 表单校验与注册功能相同;
         > 登录成功时会把当前用户名保存到cookie中,为了在登录页面的输入框中显示!
       * 用户退出:销毁session


     2). 分类模块
       * 查询所有分类:
         > 有1级和2级分类
         > 在页面中使用手风琴式菜单(Javascript组件)显示分类。


     3). 图书模块:
       * 按分类查询
       * 按作者查询
       * 按出版社查询
       * 按书名模糊查询
       * 多条件组合查询
       * 按id查询
       除按id查询外,其他都是分页查询。
       技术难点:
         > 组合查询:根据多个条件拼凑sql语句。
         > 带条件分页查询:条件可能会丢失。使用自定义的PageBean来传递分页数据!
         > 页面上的分页导航:页码列表的显示不好计算!


     4). 购物车模块:
       * 添加条目
       * 修改条目数量
       * 删除条目
       * 批量删除条目
       * 我的购物车
       * 查询被勾选条目
       购物车没有使用sesson或cookie,而是存储到数据库中。
       技术难点:
         > 添加条目时,如果两次添加针对同一本书的条目,不是添加,而是合并;
         > 修改数量时使用ajax时请求服务器端,服务器端返回json。
         > 大量js代码


     5). 订单模块:
       * 生成订单
       * 我的订单
       * 查看订单详细
       * 订单支付
       * 订单确认收货
       * 取消订单

    后台
     1). 管理员
       * 管理员登录


     2). 分类管理
       * 添加1级分类
       * 添加2级分类: 需要为2级分类指定所属1级分类
       * 编辑1级分类
       * 编辑2级分类: 可以修改所属1级分类
       * 删除1级分类: 存在子分类时,不能删除
       * 删除2级分类: 当前2级分类下存在图书时不能删除
       * 查看所有分类


     

    3). 图书管理
       * 各种查询:与前台相同
       * 添加图书: 
         > 上传图片
         > 页面中使用动态下拉列表显示2级分类,当指定1级分类后,2级分类下拉列表中动态显示该1级分类下所有2级分类名称
       * 修改图书: 与添加图书相似,也使用动态下拉列表
       * 删除图书: 需要删除图书对应图片,再删除图书

     

     4). 订单管理
       * 各种查询
       * 订单发货
       * 订单取消

     

     

    有什么问题可以添加我的QQ1023016663。

     

    展开全文
  • 网上书店系统

    2018-11-08 00:34:28
    书店管理系统,包含完整java代码,数据库文件,项目文档介绍等
  • 系统前台有:用户管理模块 分类显示模块 图书查询模块 订单处理模块 购物车模块 后台有:身份验证模块 图书管理模块 分类管理模块 订单管理模块 退出后台模块
  • 一个网上书店的购书系统(三层架构),其中包括查看图书信息,添加图书等等功能,功能比较齐全,不赘述,一般需要的功能都有,完全可以作为课程设计
  • 电子商务所呈现出来的优势与效益也将在网上书店系统中体现出来。本文介绍了一个网上书店系统,该系统通过微软平台,采用JSP和ODBC技术,可以访问Access数据库。重点探讨了目前流行的几种Web数据库访问技术。该系统...
  • 网上书店

    千次阅读 2008-12-12 10:53:00
    网上书店系统一 流程分析;二 业务流程代码详解三 持久化代码详解四 tils包下的类五 页面效果六 数据库 一,流程分析;1 登陆方式网上购物系统要求用户一定要先登陆才能购买,登陆时有两中情况,一种是先登录才能...
     
    

    网上书店系统

    流程分析;

    业务流程代码详解

    持久化代码详解

    tils包下的类

    页面效果

    数据库

     

    一,流程分析;

    1  登陆方式

    网上购物系统要求用户一定要先登陆才能购买,登陆时有两中情况,一种是先登录才能浏览商品,另一种是可以先浏览商品,在购买前都可登陆 ,本列采用第一种方式,

    2  浏览商品

       当用户成功登陆后,到商品展示页面,如果商品多时,可以提供分页供用户浏览和提供几种搜索的方式供用户查找想要的商品

    3  选择商品

       当用户选择某种商品时,显示这中商品的详细信息

    4  购买商品

       当用户选择购买这种商品时,把商品添加到购物车,显示这购物车中所有商品的详细信息清单,并计算出购物车中的所有商品的总价。

    5  确认购买

       当用户确认购买时,需要显示用户注册的详细信息予以确认,如果信息需要修改,用户可修改后再提交确认信息,用户提交信息后,生成购物清单,持久化到数据库,将不能再更改。

     

     

    二,业务流程代码详解

    1,  用户登陆

    用户登陆时,需要验证用户名和密码,

    代码:略....

    2,  浏览商品

    查询商品,本例中,只显示所有商品信息的列表信息,

    可以把商品信息查询出后放入session中,供页面获取显示。

    代码: ....

    3,  选择商品

    用户选择某种商品时,可按该商品的id到数据库中查找,然后把该商品放入Session中,供页面显示和购买时调用。

    代码:

    request.getSession().setAttribute("books",this.getBookService().findBookAll());

     注: this.getBookService().findBookAll() 这段代码是查询所有的商品的信息

    4,  购买商品

    用户购买某个商品时,后台执行的流程如下:

    /**创建一个session对象*/

           HttpSession session = request.getSession();

           /**创建一个购物订单的引用 */

           ShoppingCart cart = null;  

           /** 创建一个购物详细清单 */

           ShoppingCartItem cartItem = null;

           // session中获取图书列表 */

           List list = (List) session.getAttribute("bookdetail");

               //获取到列表中的第一本书

           Book book = (Book) list.iterator().next();

           //创建一张清单列表

           cartItem = new ShoppingCartItem();

           //把书放入清单列表

           cartItem.setBook(book);

            //判断一下session中是否有清单,如果没有说明是第一次购物,就给他创建一个购物车

           //如果session中已经有了清单,说明不是第一次购物了,就还让用户用他原来的的购物车

           if (session.getAttribute("items") == null) {

               cart = new ShoppingCart();

           } else {

               cart = (ShoppingCart) session.getAttribute("cart");

           }

           //现在有了购物车,就把购物清单加入到购物车

           cart.addItem(cartItem);  //此方法请参照下面的additem()方法

           //查询出当前购物车中的购物详细清单列表

           List items = cart.getItems();

           //把购物清单和购物车放入session

           session.setAttribute("items", items);

           session.setAttribute("cart", cart);

           //把总价计算出放入session

           session.setAttribute("total",new Double(cart.getTotalPrice()));

     

    //-----------------------------------------------------------------------

    //添加购物详细清单的方法

    public void addItem(ShoppingCartItem newItem){

                                       //参间如下面findiltem();方法

           ShoppingCartItem cartItem = this.findItem(newItem.getBookId());

           if(cartItem != null){

               cartItem.setQuantity(cartItem.getQuantity()+newItem.getQuantity());

           }else{

               items.add(newItem);

           }

        }

    //----------------------------------------------------------------------

    //根据id查找详细清单

    public ShoppingCartItem findItem(int itemId){

           ShoppingCartItem item = null;

           int num = items.size();

           for(int i = 0;i < num;i++){

               ShoppingCartItem cartItem = (ShoppingCartItem)items.get(i);

               if(itemId == cartItem.getBookId()){

                  item = cartItem;

                  break;

               }

           }

           return item;

        }

     

     

    5,  确定购买

    当用户点击了购买某中商品后,经过上一步代码处理,到我的购物车页面,在这个页面,显示当前选择的购物清单,并计算出总价,提供给用户可操作的有继续购物,删除一条详细清单,清空购物车,确认购买等操作

    5.1  继续购物;当用户选择继续购物时,回到第2步,显示商品信息给用户操作

    5.2  删除操作;当用户选择删除时,删除购物清单所对应的一条详细清单信息

    5.3  清空购物车;但用户选择购物清单时,清空购物车;

         具体操作:先获取购物车,

    ShoppingCart cart = (ShoppingCart) session.getAttribute("cart");

    cart.emptyCart();

    //-------------------------------------

       //清空列表中的内容 items是一个List 的引用

        public void emptyCart(){

           items.clear();

        }

     

    5.4 确认购买;当用户选择确认购买时,把用户的详细信息列出给用户确认,如果用户有需要修改的地方,用户可修改后再提交确认信息,这时,将生成购物订单持久到数据库,部分关键代码如下:

    /**声明一个购物车*/

           ShoppingCart cart = null;

           //获取用户提交的个人信息

           String customerName = ordercheckForm.getCustomerName();

           String email = ordercheckForm.getEmail();

           String telephone = ordercheckForm.getTelephone();

           String post = ordercheckForm.getPost();

           String address = ordercheckForm.getAddress();

          

           String user = this.checkUser(request, response);

       

           if (user != null && user.length() > 3) {

               //sessiong中获取用户

               Customer cust = (Customer) request.getSession()

                      .getAttribute("user");

              

               //session中获取购物车

               cart = (ShoppingCart) session.getAttribute("cart");

               //创建一个订单对象

               Orders order = new Orders();

               //创建一个HashSet 对象

               HashSet set = new HashSet();

               //把购物的总价写如订单

               order.setTotalprice(new Double(cart.getTotalPrice()));

               //把用户id写入订单

               order.setCustId(cust.getCustomerId());

               //遍历购物车中的详细清单信息

               Iterator it = cart.getItems().iterator();

               while (it.hasNext()) {

                  //获取用户购物详细清单

                  ShoppingCartItem cartitem = (ShoppingCartItem) it.next();

                  //创建一个订单明细表

                  Orderitem orderitem = new Orderitem();

                  //把购物详细清单中的书的id加入订单明细表

                  orderitem.setBookid(new Integer(cartitem.getBookId()));

                  //把购物详细清单中的书的quantity加入订单详细列表

                  orderitem.setQuantity(new Integer(cartitem.getQuantity()));

                  //把订单对象写入到订单详细列表对象中

                  orderitem.setOrders(order);

                  //把订单放入HashSet

                  set.add(orderitem);

               }

               //形成订单列表

               order.setOrderItems(set);

               //把订单持久化到数据库,参见如下@1详解

               this.getOrderService().saveNewOrder(order);

               //user对象保存到session 中,保证他购物完后还能正常继续购物

               session.setAttribute("user", cust);

               //清空购物车

               cart.emptyCart();

    @1详解:this.getOrderService().saveNewOrder(order);

    在这行代码中,我们只看到保存了订单信息到数据库,而没有把订单明细信息添加到数据库,但执行完后我们会发现,数据库中订单明细表中也添加了所有的订单信息,这是怎么加进去的呢?这就要看我们的Hibernate的对象关系映射之间的关系了,在这里,订单表和订单明细表是一对多的关系。我们看订单明细表 订单表中的映射文件

    订单明细表 OrderItems.hbm.xml

    <many-to-one name="orders"

                    class="com.ascent.bean.Orders"

                  cascade="all"

     outer-join="false"

     update="false"

    insert="false"

                  column="order_id" not-null="true" />

     

    订单表 Orders.hbm.xml

    <set name="orderItems" table="orderitem" lazy="false"

               inverse="false" cascade="all" sort="unsorted">

               <key column="order_id" />

               <one-to-many class="com.ascent.bean.Orderitem" />

           </set>

     

     

     

     

         从这两个映射文件中我们可以看出,订单明细表和订单表之间是多对一双向关联关系,当保存订单信息时,hibernate会根据他们之间的映射关系,自动保存订单明细表的信息

    BaseAction.java源代码代码

    package com.ascent.struts.action;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.Action;

    import org.apache.struts.action.ActionError;

    import org.apache.struts.action.ActionErrors;

    import com.ascent.bean.Customer;

    import com.ascent.business.IBookService;

    import com.ascent.business.ICustomerService;

    import com.ascent.business.IOrderItemService;

    import com.ascent.business.IOrderService;

    import com.ascent.util.AppContext;

     

    public class BaseAction extends Action {

       

        public BaseAction() {

           super();

        }

     

        protected IBookService getBookService() {

           return (IBookService) AppContext.getInstance().getAppContext().getBean(

                  "bookService");

        }

     

        protected IOrderService getOrderService() {

           return (IOrderService) AppContext.getInstance().getAppContext()

                  .getBean("orderService");

        }

     

        protected ICustomerService getCustomerService() {

           return (ICustomerService) AppContext.getInstance().getAppContext()

                  .getBean("customerService");

        }

     

        protected IOrderItemService getOrderItemService() {

           return (IOrderItemService) AppContext.getInstance().getAppContext()

                   .getBean("orderItemService");

        }

        /**

         * 这个方法判断用户是否登陆

         * @param request

         * @param response

         * @return

         */

        protected String checkUser(HttpServletRequest request,

               HttpServletResponse response) {

           Customer user = null;

           user = (Customer) request.getSession().getAttribute("user");

           if (user == null) {

               System.out.println("you have no loginning!!!!");

               ActionErrors errors = new ActionErrors();

               errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionError(

                      "errors.login"));

               this.saveErrors(request, errors);

               return null;

           } else {

               return user.getCustName();

           }

        }

    }

     

     

    三,持久化代码详解:

    1,  BookHibernateDAO.java

    package com.ascent.dao.hibernate;

    import java.util.ArrayList;

    import java.util.List;

    import org.apache.log4j.LogManager;

    import org.apache.log4j.Logger;

    import org.springframework.orm.hibernate.support.HibernateDaoSupport;

    import com.ascent.bean.Book;

    import com.ascent.dao.IBookDAO;

     

    public class BookHibernateDAO extends HibernateDaoSupport implements IBookDAO {

     

        private static final Logger LOGGER = LogManager.getLogger(BookHibernateDAO.class);

       

        private static final String LOAD_ALL = "from Book book order by book.bookId desc";

     

        private static final String LOAD_BY_AUTHOR = "from Book book where book.bookAuthor = ? order by book.bookId desc";

     

        private static final String LOAD_BY_NAME = "from Book book where book.bookName = ? order by book.bookId desc";

     

        public BookHibernateDAO() {

           super();

        }

        public Book saveBook(Book book) {

           try {

               this.getHibernateTemplate().saveOrUpdate(book);

               LOGGER.debug("保存书籍成功!");

               return book;

           } catch (Exception ex) {

               LOGGER.error("保存图书失败!",ex);

               ex.printStackTrace();

               return null;

           }

        }

        public Book getBook(Integer id) {

           LOGGER.debug("根据图书ID得到一个图书对象!");

           return (Book)this.getHibernateTemplate().get(Book.class,id);

        }

        public List findBookAll() {

           try{

               return this.getHibernateTemplate().find(LOAD_ALL);

           }catch(Exception ex){

               LOGGER.error("未能得到所有图书列表!",ex);

               ex.printStackTrace();

               return new ArrayList();

           }

        }

        public List findBookByAuthor(String author) {

           try{

               LOGGER.debug("按作者取得图书列表");

               return this.getHibernateTemplate().find(LOAD_BY_AUTHOR,author);

           }catch(Exception ex){

               LOGGER.error("未能按作者取得图书列表!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }  

        public List findBookByName(String name) {

           try{

               return this.getHibernateTemplate().find(LOAD_BY_NAME,name);

           }catch(Exception ex){

               LOGGER.error("未能按书名得到图书列表!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }

        public void removeBook(Book book) {

           LOGGER.debug("从数据库中删除指定图书");

           this.getHibernateTemplate().delete(book);

        }

    }

     

    2  CustomerHibernateDAO.java

    package com.ascent.dao.hibernate;

     

    import java.util.ArrayList;

    import java.util.List;

     

    import org.apache.log4j.LogManager;

    import org.apache.log4j.Logger;

    import org.springframework.orm.hibernate.support.HibernateDaoSupport;

     

    import com.ascent.bean.Customer;

    import com.ascent.dao.ICustomerDAO;

     

    public class CustomerHibernateDAO

        extends HibernateDaoSupport

        implements ICustomerDAO {

       

        private static final Logger LOGGER = LogManager.getLogger(CustomerHibernateDAO.class);

       

        private static final String LOAD_ALL = "from Customer cust order by cust.customerId desc";

     

        private static final String LOAD_BY_NAME = "from Customer cust where cust.custName = ? order by cust.customerId desc";

        public CustomerHibernateDAO() {

           super();

        }

        public Customer saveCustomer(Customer customer){

           try{

               this.getHibernateTemplate().save(customer);

               LOGGER.debug("保存用户信息到数据库成功!");

               return customer;

           }catch(Exception ex){

               LOGGER.error("保存用户信息到数据库失败!");

               ex.printStackTrace();

               return null;

           }

        }

     

        public Customer getCustomer(Integer id){

           LOGGER.debug("根据用户ID得到用户信息!");

           return (Customer)this.getHibernateTemplate().get(Customer.class,id);

        }

        public List findCustomerAll(){

           try{

               LOGGER.debug("得到所有用户列表!");

               return this.getHibernateTemplate().find(LOAD_ALL);         

           }catch(Exception ex){

               LOGGER.error("获取所有用户列表失败!");

               return new ArrayList();

           }

        }

        public List findCustomerByName(String name){

           try{

               LOGGER.debug("根据用户姓名得到用户信息!");

               return this.getHibernateTemplate().find(LOAD_BY_NAME,name);

           }catch(Exception ex){

               LOGGER.error("根据用户姓名获取用户信息失败!");

               ex.printStackTrace();

               return null;

           }

        }

        public void removeCustomer(Customer customer){

           LOGGER.debug("从数据库中删除指定用户信息!");

           this.getHibernateTemplate().delete(customer);

        }

    }

     

     

    3   OrderHibernateDAO.java

    package com.ascent.dao.hibernate;

    import java.util.ArrayList;

    import java.util.HashSet;

    import java.util.Iterator;

    import java.util.List;

     

    import net.sf.hibernate.HibernateException;

    import net.sf.hibernate.Session;

    import net.sf.hibernate.Transaction;

     

    import org.apache.log4j.LogManager;

    import org.apache.log4j.Logger;

    import org.springframework.orm.hibernate.support.HibernateDaoSupport;

     

    import com.ascent.bean.Orders;

    import com.ascent.bean.Orderitem;

    import com.ascent.dao.IOrderDAO;

     

    public class OrderHibernateDAO

       extends HibernateDaoSupport

       implements IOrderDAO{

       

        private static final Logger LOGGER = LogManager.getLogger(OrderHibernateDAO.class);

       

        private static final String LOAD_ALL = "from Order ord order by ord.orderId desc";

     

        private static final String LOAD_BY_CUST = "from Order ord where ore.CustId = ? order by ord.orderId desc";

     

        public OrderHibernateDAO() {

           super();

        }  

        public Orders saveOrder(Orders order){

     

           try{

                LOGGER.debug("保存订单信息到数据库!");

               this.getHibernateTemplate().save(order);

                Iterator it = order.getOrderItems().iterator();

                while(it.hasNext()){

                LOGGER.debug("保存订单明细项到数据库!");

                Orderitem item = (Orderitem)it.next();

                this.getHibernateTemplate().save(item);

                }

               

               return order;

           }catch(Exception ex){

               LOGGER.error("保存订单和订单明细失败!");

               ex.printStackTrace();

               return null;

           }

        }

     

        public Orders getOrder(Integer id){

           LOGGER.debug("根据订单ID取得订单对象!");

           return (Orders)this.getHibernateTemplate().get(Orders.class,id);

        }

     

        public List findOrderAll(){

           try{

               LOGGER.debug("获取所有订单信息列表!");

               return this.getHibernateTemplate().find(LOAD_ALL);

           }catch(Exception ex){

               LOGGER.error("获取所有订单信息列表失败!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }

     

        public List findOrderByCust(Integer custId){

           try{

               LOGGER.debug("根据用户ID获取用户相应的订单列表!");

               return this.getHibernateTemplate().find(LOAD_BY_CUST,custId);

           }catch(Exception ex){

               LOGGER.error("根据用户ID获取用户订单列表失败!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }

     

        public void removeOrder(Orders order){

           LOGGER.debug("从数据库中删除指定订单");

           this.getHibernateTemplate().delete(order);

        }

     

    }

     

    4  OrderItemHibernateDAO.java

    package com.ascent.dao.hibernate;

    import java.util.ArrayList;

    import java.util.List;

    import org.apache.log4j.LogManager;

    import org.apache.log4j.Logger;

    import org.springframework.orm.hibernate.support.HibernateDaoSupport;

    import com.ascent.bean.Orderitem;

    import com.ascent.dao.IOrderItemDAO;

    public class OrderItemHibernateDAO

       extends HibernateDaoSupport

       implements IOrderItemDAO {

       

        private static final Logger LOGGER = LogManager.getLogger(OrderItemHibernateDAO.class);

       

        private static final String LOAD_ALL = "from Orderitem oi order by oi.orderitemID desc";

     

        private static final String LOAD_BY_BOOK = "from Orderitem oi where oi.bID = ? order by oi.orderitemID desc";

     

        public OrderItemHibernateDAO() {

           super();

           // TODO Auto-generated constructor stub

        }

       

        public Orderitem saveOrderitem(Orderitem orderitem){

           try{

               LOGGER.debug("保存订单明显项到数据库!");

               this.getHibernateTemplate().save(orderitem);

               return orderitem;

           }catch(Exception ex){

               LOGGER.error("保存订单明细项到数据库失败!");

               ex.printStackTrace();

               return null;

           }

        }

     

       

        public Orderitem getOrderitem(Integer id){

           LOGGER.debug("根据订单明显项ID获取该订单项信息!");

           return (Orderitem)this.getHibernateTemplate().get(Orderitem.class,id);

        }

     

        public List findOrderitemAll(){

           try{

               LOGGER.debug("获取所有订单明显项列表!");

               return this.getHibernateTemplate().find(LOAD_ALL);

           }catch(Exception ex){

               LOGGER.error("获取所有订单明明细项列表失败!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }

        public List findOrderitemByBook(Integer bookId){

           try{

               LOGGER.debug("根据书籍ID获取对应该书的所有订单明细项列表!");

               return this.getHibernateTemplate().find(LOAD_BY_BOOK,bookId);

           }catch(Exception ex){

               LOGGER.error("根据书籍ID获取对应该书的所有订单明细项列表失败!");

               ex.printStackTrace();

               return new ArrayList();

           }

        }

        public void removeOrderItem(Orderitem orderitem){

           LOGGER.debug("删除指定的订单明细项");

           this.getHibernateTemplate().delete(orderitem);

        }

     

    }

     

    四,utils包下的类

    1  AppContext

    package com.ascent.util;

    import org.springframework.context.support.*;

    public class AppContext {

        /**定义一个上下文环境的变量*/

      private static AppContext instance;

      private AbstractApplicationContext appContext;

     

      public synchronized static AppContext getInstance() {

        if (instance == null) {

          instance = new AppContext();

        }

        return instance;

      }

     

      private AppContext() {

        this.appContext = new ClassPathXmlApplicationContext(

            "applicationContext.xml");

      }

     

      public AbstractApplicationContext getAppContext() {

        return appContext;

      }

    }

     

     

     

    package com.ascent.util;

     

    import java.util.LinkedList;

    import java.util.List;

     

    public class ShoppingCart {

       

        private List items = null;

          

        public ShoppingCart(){

           items = new LinkedList();

        }

       

        public List getItems(){

           return this.items;

        }

        /**

         * 添加购物清单

         * @param newItem

         */

        public void addItem(ShoppingCartItem newItem){

           ShoppingCartItem cartItem = this.findItem(newItem.getBookId());

           if(cartItem != null){

               cartItem.setQuantity(cartItem.getQuantity()+newItem.getQuantity());

           }else{

               items.add(newItem);

           }

        }

       

        public void removeItem(int itemId){

           System.out.print("======remove invoking !!");

           ShoppingCartItem item = findItem(itemId);

           if(item != null){

               System.out.println("==========prepeared remove");

               items.remove(item);

               System.out.println("==========item is removed");

           }else{

               System.out.println("=========item is not found");

           }

        }

       

        public void deleteItem(ShoppingCartItem newItem){

           items.remove(newItem);

        }

       

       

        public void emptyCart(){

           items.clear();

        }

        /**

         * 计算价格

         * @return

         */

        public double getTotalPrice(){

           double total = 0.0;

           int size = items.size();

           for(int i = 0;i< size;i++){

               total += ((ShoppingCartItem)items.get(i)).getBookPrice()*((ShoppingCartItem)items.get(i)).getQuantity();

           }

           return total;

        }

        /**

         * 根据 id 从购物详细清单中查找是否有这条清单

         * @param itemId 购物清单id

         * @return 购物清单

         */

        public ShoppingCartItem findItem(int itemId){

           ShoppingCartItem item = null;

           int num = items.size();

           for(int i = 0;i < num;i++){

               ShoppingCartItem cartItem = (ShoppingCartItem)items.get(i);

               if(itemId == cartItem.getBookId()){

                  item = cartItem;

                  break;

               }

           }

           return item;

        }

     

    }

     

    2  AppContext.java

    package com.ascent.util;

     

    import java.io.Serializable;

     

    import com.ascent.bean.Book;

     

    public class ShoppingCartItem implements Serializable {

        private Book book = null;

        private int quantity = 1;

       

        public void setBook(Book book){

           this.book = book;

        }

       

        public Book getBook(){

           return this.getBook();

        }

       

        public int getQuantity(){

           return this.quantity;

        }

       

        public void setQuantity(int quantity){

           this.quantity = quantity;

        }

       

        public int getBookId()

        {

            return this.book.getBookId().intValue();

        }

       

        public double getBookPrice(){

           return this.book.getBookPrice().doubleValue();

        }

       

        public String getBookName(){

           return this.book.getBookName();

        }

       

        public String getBookAuthor(){

           return this.book.getBookAuthor();

        }

     

    }

     

     

    五,页面效果

     

    1 登陆页面

     

     

    2显示信息页面,

    商品详细信息页

     

    3,我的购物车页

    确认信息页

     

     

    六,              数据库

     

    1  表间关系

     

    2,  数据库脚本

     

    /*

    SQLyog Enterprise - MySQL GUI v6.14

    MySQL - 5.0.41-community-nt : Database - bookstoressh

    *********************************************************************

    */

    /*!40101 SET NAMES utf8 */;

     

    /*!40101 SET SQL_MODE=''*/;

     

    create database if not exists `bookstoressh`;

     

    USE `bookstoressh`;

     

    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

     

    /*Table structure for table `book` */

     

    DROP TABLE IF EXISTS `book`;

     

    CREATE TABLE `book` (

      `book_name` varchar(100) NOT NULL default '',

      `book_id` int(11) NOT NULL auto_increment,

      `book_author` varchar(100) NOT NULL default '',

      `book_price` double NOT NULL default '0',

      `image` varchar(100) NOT NULL default '',

      `descibe` varchar(200) NOT NULL default '',

      PRIMARY KEY  (`book_id`)

    ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

     

    /*Data for the table `book` */

     

    insert  into `book`(`book_name`,`book_id`,`book_author`,`book_price`,`image`,`descibe`) values ('corejava',1,'dfs',78,'image/10.gif','good,it is the success door to java'),('ejb',2,'zhangsan',99.9,'image/9.gif','enterprise java bean'),('jsp',4,'ccc',44,'image/7.gif','java server page'),('struts',9,'cbnm',44,'image/4.gif','java server page'),('spring',10,' qiuyn',22,'image/5.gif','java data base connection');

     

    /*Table structure for table `customer` */

     

    DROP TABLE IF EXISTS `customer`;

     

    CREATE TABLE `customer` (

      `customer_id` int(11) NOT NULL auto_increment,

      `cust_name` varchar(100) NOT NULL default '',

      `password` varchar(100) NOT NULL default '',

      `email` varchar(100) NOT NULL default '',

      `phone` varchar(30) default NULL,

      `address` varchar(100) default NULL,

      `postcode` varchar(30) default NULL,

      PRIMARY KEY  (`customer_id`)

    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

     

    /*Data for the table `customer` */

     

    insert  into `customer`(`customer_id`,`cust_name`,`password`,`email`,`phone`,`address`,`postcode`) values (1,'luojs','luojs','luojs@123.com','123456789','beijing',''),(2,'feifei','feifei','feifie@fei.com','987654321','yunnankunming',NULL);

     

    /*Table structure for table `orderitem` */

     

    DROP TABLE IF EXISTS `orderitem`;

     

    CREATE TABLE `orderitem` (

      `orderItem_id` int(11) NOT NULL auto_increment,

      `quantity` int(11) NOT NULL default '0',

      `order_id` int(11) NOT NULL default '0',

      `bookid` int(11) NOT NULL default '0',

      PRIMARY KEY  (`orderItem_id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

     

    /*Data for the table `orderitem` */

     

    /*Table structure for table `orders` */

     

    DROP TABLE IF EXISTS `orders`;

     

    CREATE TABLE `orders` (

      `order_id` int(11) NOT NULL auto_increment,

      `cust_id` int(11) NOT NULL default '0',

      `totalprice` double NOT NULL default '0',

      PRIMARY KEY  (`order_id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

     

    /*Data for the table `orders` */

     

    /*Table structure for table `tableid` */

     

    DROP TABLE IF EXISTS `tableid`;

     

    CREATE TABLE `tableid` (

      `id` int(11) NOT NULL default '0',

      `IDValue` int(11) NOT NULL default '0',

      PRIMARY KEY  (`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

     

    /*Data for the table `tableid` */

     

    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;

    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

     

     

     

     

     

     

     

    展开全文
  • 网上书店系统源码

    热门讨论 2012-02-23 19:24:14
    (133) 网上书店系统 【摘要】本文首先介绍了课题所涉及的相关技术:多层用户/服务器结构以及Web应用的相关数据库访问技术,ASP技术。在次基础上论述了网上书店系统的设计目标、系统需求和总体设计方案,较详细的论述...
  • java网上书店系统

    2018-06-19 18:03:41
    jsp+servlet+mysql,有文档,把数据库密码换成自己本地数据库密码就行了直接下载就可以。
  • 网上书店数据库

    2018-05-09 11:09:44
    网上书店数据库代码,打开数据库,新建查询,执行此代码
  • ASP.NET网上书店系统

    热门讨论 2009-05-19 11:24:09
    实现了网上书店系统,用户可以利用该系统浏览图书,按照类别、图书名称等查询图书,并实现用户的购物篮管理功能。同时,系统系统管理者的身份,实现了图书管理的功能。 \MyBookShop\App_Code\BusinessLogicHelper...
  • java网上书店系统+毕业设计系统源码

    热门讨论 2013-12-02 09:14:13
    jsp+JavaScript+struts+hibernate+css+mysql的网上书店(源码完整直接运行 高仿真数据库记录 身临其境网上购书吧 ) 和国内最好的网上书店 当当网的框架相同 包括顾客的购物车 订单管理和留言板 支持商品搜索;后台...
  • 基于mvc模式开发的简易网上书城系统,实现了添加到购物车和用户管理、购买、管理员后台管理库存和用户等功能,用eclipse导入后,根据自己的情况更改一下jdbc的连接配置,再按下载的说明导入数据表,用tomcat发布后,...
  • 网上书店系统UML图

    2018-09-10 17:01:05
    用rational rose画图,网上书店系统UML,适合用作课设
  • jsp网上书店系统用例图+功能图+论文,可用于计算机相关专业课程设计等
  • JSP网上书店系统JSP网上书店系统

    热门讨论 2009-05-03 15:06:35
    JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP网上书店系统JSP...
  • 网上书店系统的需求分析及设计,内容详细,有数据流图,数据字典等内容
  • 基于asp.net网上书城系统设计

    千次阅读 2019-04-17 22:59:51
    获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设 在当今现代,计算机逐渐的成为了社会的主流。不管是政府、企业、商务、军事、科学研究、教育等等,都已经离不开电脑。同样的购物也是一样,人们的消费...

    获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设

    在当今现代,计算机逐渐的成为了社会的主流。不管是政府、企业、商务、军事、科学研究、教育等等,都已经离不开电脑。同样的购物也是一样,人们的消费观念也和从前有所不同了,不在是主动上门盲目的寻找自己想要的东西,往往是先想好自己想要的东西,然后通过网络的形式去了解和选择自己想要商品,什么的款式好看,什么样的价钱合适,也不用盲无目的的四处寻找,从而浪费大量的时间。

    在现在网络发达的时代,上网购物已经不在出奇了。大家往往会在网上搜索自己想要的东西,合适的价钱,然后通过网络的形式订购,让商家送货上门,即有了多样化的选择,也避免了寻找合适商品而浪费的时间。尤其是对于时间比较紧的上班一族,这无疑是一种非常好的消费方式。

    网上书城是web应用的一种,其开始流程包括需求分析、UML系统建模集成方案、数据库分析和设计以及各功能模块的开发等。

     

     

     

    关键字:网络、网上购物、趋势、消费方式

     

     

     

     

    目录

      

    网上书城... 1

    摘要... 1

    前言... 7

    11       需求分析... 7

    1. 1. 1网上购书的前台用例包括:... 8

    1. 1. 2网上购书的后台用例包括:... 8

    12       UML系统建模... 8

    121 网上书城的用例分析... 8

    122系统层次模块图:. 9

    123数据流程图... 10

    13       编程环境... 11

    14       数据库设计... 11

    141 创建数据库... 12

    15       界面设计... 14

    l    前台主界面... 14

    l    分类查看... 16

    l    单本书的明细... 16

    l    购物车... 18

    l    我的有才... 18

    l    填写订单... 19

    l    后台主界面... 20

    l    添加图书... 21

    l    修改图书... 22

    l    审核订单... 23

    1.5.1 网上书店的购书流程... 24

    1.5.2 后台管理... 29

    16       总结... 30

    17       参考文献... 31

    广西职业技术学院毕业论文(设计)指导教师评价表... 31

     

     

     

     

    前言

        网上购物类型的网站,在当今的社会是不可缺少的部分。一个好的书店,其最重要的部分就是它的宣传。一家装修得再好的书店,要是没有人知道它的存在,那么它就是虚假的。宣传有很多种方法,如:发传单、登报纸、上电视等等。但是这些方法都有各自的缺陷。发传单需要花钱雇用人,花钱印刷传单,而且发放的地域也极小。登报纸、上电视,这些都是花很多钱的广告,效果虽然是挺好的,但是毕竟花费过大。而网上购书网站就不同了,通过网络的形式,可以让全世界的人知道,花费仅是一台电脑,一个维护人员而以。而且通过网上销售商品的形式也无疑的增加了销售渠道和消费人群,从而给商家带来低投资高回报的效益。
        作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,建立这样一个网站和管理系统是非常有必要的。

     

      1. 需求分析

    通过网络来宣传和销售商品是当今计算机科技发达时代的必然趋势。它所带来的好处不仅仅是成本低廉,其最为重要的是增加了商家的销售渠道和宣传效果,从而给商家带来更大的利润。

    1. 1. 1网上购书的前台用例包括

    1. 用户登陆/注册(用户ID、密码)
    2. 浏览图书(查看图书名称、作者、出版社、简介、价格等基本信息)
    1. 图书查找(通过图书名称、作者、出版社来查询)
    1. 订购图书(选择图书、数量)
    2. 预定信息查看(用户预订的图书名称、数量、单价等)
    1. 修改预定信息(修改用户预订的图书名称、数量、单价等)
    2. 用户信息查看(用户名、昵称、邮箱等)
    1. 修改用户信息 (密码的修改, 邮箱的修改,安全提示信息修改)

    1. 1. 2网上购书的后台用例包括

    1. 图书明细管理(查看、修改和删除图书基本信息)
    2. 图书类型管理(查看、修改和删除图书类型)
    3. 用户管理(查看、删除用户)
    4. 订单管理(查看、审核和删除订单)

     

      1. UML系统建模

    121 网上书城的用例分析

    在上面1.1节需求分析中列出了整个网站的全部用例。

    其ER图所示。

         

    tushumingxi

    PK

    tushuID

    FK1

    FK2

    leixingID

    jibieID

    tushuname

    zz

    cbs

    jj

    tupian

    yuanjia

    zhelv

    jin_date

    huocun

    hits

    xiaoshouliang

    bianjituijian

    zuozhejieshao

    mulu

    uer

    PK

    uerID

    uerPwd

    uername

    uermail

    uerlasttime

    uerfaq

    ueran

    Orders

    PK

    orderNo

    FK4

    uerID

    shName

    address

    tel

    zhifu

    zhuangtai

    orderDate

    zongjia

    OrderItems

    PK

    itemNo

     

    FK3

    ItemID

    orderNo

    itemName

    itemPrice

    itemNum

    jibie

    PK

    jibieID

    FK5

    leixingID

    jibie

    Leixing

    PK

    leixingID

    leixing

                                                       

     

       网上书城ER图

    122系统层次模块图:

     

     

    123数据流程图

     

     

    书库

     

    后台录入

    订单发货

    减少数量

    增加数量

     

      1. 编程环境

    在开发这个网站前,我认真考虑系统的实际运用情况,选择好合适的系统配置方案是很有必要的。

    操作系统:     Windows XP

    开发平台:       Microsoft Visual C# .NET 2005

    数据库:       SQL Server 2005

     

    ASP.NET是功能强大的服务器端技术,用于创建动态的WEB页,它采用了真正的程序语言。ASP.NET是一个革命性的编程框架,它实现了企业级Web应用程序的快速开发,提供了最简便、最具有扩展能力的开发方式。故而,实现本系统使用ASP.NET是一个相对较好的选择。

      1. 数据库设计

    选用SQL Server2005做为数据库开发工具,主要是SQL Server2005数据库汇集各种信息以供查询、存储和检索。SQL Server2005 的优点在于安全性高,他采用二级安全验证、登录验证及数据库用户帐号和角色的许可验证。SQL Server2005也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。SQL Server2005 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。

    141 创建数据库

    数据库名:myjob

    表名:uer

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    2

    uerID

    varchar

    50

    0

     

     

    用户登录ID

    3

    uerPwd

    varchar

    50

    0

     

     

     

    用户登录密码

    4

    uername

    varchar

    50

    0

     

     

     

    用户真实姓名

    5

    uermail

    varchar

    50

    0

     

     

     

    用户E-mail

    6

    uerlasttime

    datetime

    8

    3

     

     

    (getdate())

    上次登录的时间

    7

    uerfaq

    varchar

    50

    0

     

     

     

    找回密码提问

    8

    ueran

    varchar

    50

    0

     

     

     

    找会密码回答



    表名:tushumingxi

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    tushuID

    int

    4

    0

     

    图书ID

    2

    leixingID

    int

    4

    0

     

     

     

    类型ID

    3

    jibieID

    int

    4

    0

     

     

     

    级别ID

    4

    tushuname

    varchar

    50

    0

     

     

     

    图书名称

    5

    zz

    varchar

    50

    0

     

     

     

    作者名称

    6

    cbs

    varchar

    50

    0

     

     

     

    出版社

    7

    tupian

    char

    200

    0

     

     

    ('暂无图片')

    图书封面图片

    8

    yuanjia

    float

    8

    0

     

     

     

    定价

    9

    zhelv

    float

    8

    0

     

     

    ((1.00))

    折率

    10

    jin_date

    datetime

    8

    3

     

     

    (getdate())

    进货时间

    11

    huocun

    int

    4

    0

     

     

    ((0))

    库存

    12

    cb_date

    datetime

    8

    3

     

     

     

    出版时间

    13

    Hits

    int

    4

    0

     

     

    ((0))

    点击率

    14

    xiaoshouliang

    int

    4

    0

     

     

     

    销售量

    15

    bianjituijian

    varchar

    MAX

    0

     

     

     

    编辑推介

    16

    jj

    varchar

    MAX

    0

     

     

     

    内容简介

    17

    zuozhejieshao

    varchar

    MAX

    0

     

     

     

    作者简介

    18

    mulu

    varchar

    MAX

    0

     

     

     

    目录



    表名:Orders

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    orderNo

    int

    4

    0

     

    订单编号

    2

    uerID

    varchar

    50

    0

     

     

     

    订单用户名

    3

    shName

    nchar

    20

    0

     

     

     

    收货人姓名

    4

    address

    nvarchar

    50

    0

     

     

     

    送货地址

    5

    Tel

    nchar

    20

    0

     

     

     

    联系电话

    6

    zhifu

    nchar

    20

    0

     

     

     

    支付方式

    7

    zhuangtai

    nchar

    10

    0

     

     

    (N'审核中')

    审核状态

    8

    orderDate

    datetime

    8

    3

     

     

    (getdate())

    订单日期

    9

    zongjia

    float

    8

    0

     

     

     

    订单总价



    表名:OrderItems

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    itemNo

    int

    4

    0

     

    订单项目序号

    2

    orderNo

    int

    4

    0

     

     

     

    订单编号

    3

    itemID

    int

    4

    0

     

     

     

    商品ID

    4

    itemName

    varchar

    50

    0

     

     

     

    商品名称

    5

    itemPrice

    float

    8

    0

     

     

     

    商品单价

    6

    itemNum

    int

    4

    0

     

     

     

    订购数量



    表名:leixing

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    leixingID

    int

    4

    0

     

    类型ID

    2

    leixing

    varchar

    MAX

    0

     

     

     

    类型名称



    表名:jibie

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    leixingID

    int

    4

    0

     

     

     

    类型ID

    2

    jibieID

    int

    4

    0

     

     

     

    级别ID

    3

    jibie

    varchar

    50

    0

     

     

     

    级别名称



    表名:admin

    序号

    列名

    数据类型

    长度

    小数位

    标识

    主键

    允许空

    默认值

    说明

    1

    admin_name

    varchar

    50

    0

     

     

     

    管理员名称

    2

    admin_pwd

    varchar

    50

    0

     

     

     

    管理员密码

     

      1. 界面设计

    本网站的界面主要分为2大部分,即:前台界面和后台界面。

    1. 前台主界面

    1. 分类查看

    1. 单本书的明细

    1. 购物车

    1. 我的有才

    1. 填写订单

    1. 后台主界面

       

    1. 添加图书

    1. 修改图书

            

    1. 审核订单

     

    151 网上书店的购书流程

    首先通过主界面(如图1)的分类浏览或者查询功能或者其他的连接,跳转到分类查看界面(如图2),点击该书的购买按钮将添加到购物车表中。

    1

    2

    实现该功能的代码:

          image按钮的单击事件

    void imgbtn_Command(object sender, CommandEventArgs e)

        {

            sc.gouwuche(e.CommandArgument.ToString());

    }

    在该页初始化的时候,已经批量的将每本图书的ID付给了它对应的ImageBatun 的CommandArgument。

    所以当点击该按钮时,对应的它的CommandArgument的值就是该图书的bookID。

    sc为公共类select 的一个对象,此处用到的gouwuche()方法的代码如下:

    //创建静态的 DataTable dtgwc 做为购物车表

    private static DataTable dtgwc=new DataTable();

    public void gouwuche(string bookID)

        {

            string sql = "select tushuID,tushuname,yuanjia,zhelv from tushumingxi where tushuID=" + bookID.Trim();  

           //中转用的 DataTable,用于存放传入的bookID对应的信息  

            DataTable cart = rdt(sql);

    //判断购物车表里是否有数据,如果没有则新建列名

            if (dtgwc.Columns.Count<=0)

            {

                dtgwc.Columns.Add("商品ID", typeof(string));

                dtgwc.Columns.Add("商品名称", typeof(string));

                dtgwc.Columns.Add("单价", typeof(double));

                dtgwc.Columns.Add("数量", typeof(string));

            }

            //创建购物车表dtgwc的行操作对象rr,并对该行赋值

            DataRow rr = dtgwc.NewRow();

            rr["商品ID"] = cart.Rows[0].ItemArray[0].ToString().Trim();

            rr["商品名称"] = cart.Rows[0].ItemArray[1].ToString().Trim();    

            rr["数量"] = "0";

            rr["单价"] = Convert.ToDouble(cart.Rows[0].ItemArray[2].ToString().Trim()) * Convert.ToDouble(cart.Rows[0].ItemArray[3].ToString().Trim());

            //把新增的行插入到购物车表中

            dtgwc.Rows.Add(rr);

        }

    通过以上的操作就可以把你所想购买的书添加到购物车表中去了。接下来就是去购物车表里确定购买图书的数量了,点击导航上的“我的购物车”超连接到购物页面(如图3

    3

    在数量一栏填写你要购买该本书的数量,在下面的总价钱处也会自动的汇总,点击结账按钮则会跳转到填写订单界面(如图4)

          4

    填写好收货人信息后,点击提交订单后,就可以完成购物了。并将订单信息提交到数据库的订单表中。不过必须要先登录才能填写订单。

    152 后台管理

        

    后台管理

     

    图书管理

    订单管理

    图书类型管理

    用户管理

    1. 图书管理(tushumingxi表)

    对数据库中的图书基本信息进行统一的管理,可以改变图书的基本信息等。包括图书基本信息的录入、修改、统计、删除、查询等功能等。

    1. 图书类型管理(leixing、jibie表)

      对数据库中的leixing表和jibie表的一个新增、修改、删除。

    1. 用户管理(uer表)

         主要是一个删除用户的功能,当该用户又一些不当行为时,如:在网站内发布暴力、色情、违法等内容;填写虚假信息并提交购物订单等。一经发现,管理员有权将其删除。

    1. 订单管理(Order、OrderItems表)

    对用户提交的订单进行审核,如果订单支付方式为“送货上门,货到付款”的话,管理员将通过用户所填写的详细地址和联系电话等信息进行相应的查证,确定该订单信息的真实性则将订单状态修改为“通过审核”,相应部门将订单的状态来发货。如果查证的结果是虚假的的,那么将直接删除该订单,并将该用户的帐号停封。还未得到审核的订单状态均为“审核中”。

                 

      1. 总结

    经过两个来月的努力,终于完成了这个购书网站。其功能基本符合用户需求,能够完成浏览图书,购买,添加,修改,删除等功能。由于毕业设计时间短,所以该系统还有许多不尽人意的地方,比如:界面简单、单调,代码不够规范,还有很多的BUG等等,这些都是有待进一步改善的,但是我从本次毕业设计中学到许多上课无法学到的知识。更好的掌握了Microsoft Visual C# .NET 2005,对数据库的操作也越发熟练,考虑问题也比以前全面了。这对我下一次开发都是非常好的帮助。

    展开全文
  • asp 网上书店系统.zip

    2019-11-25 14:26:52
    资源中是全量的网上书店系统的代码,包含商品查询、购物车、结算等。还开发了后台管理,书本信息的上传、价格修改发布等等。
  • 基于javaee技术开发的网上书店,数据库用的是mysql
  • 需求分析,部分设计代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

空空如也

1 2 3 4 5 ... 20
收藏数 30,245
精华内容 12,098
关键字:

网上书店