基于javaweb+mysql的在线商城购物商城美妆商城(前台、后台)

基于javaweb+mysql的在线商城购物商城美妆商城(前台、后台)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

前台:

首页展示商品信息,注册,登录,查询商品,看商品详情,添加商品至购物车,更新、删除购物车中商品信息,下订单、订单查看等操作

后台:登录,商品上架下架、商品信息修改、添加,订单查看,类型管理:商品类型新增删除以及修改查询等

前台:

后台:

技术框架

JavaBean MVC JSP SSM(Spring SpringMVC MyBatis) MySQL Bootstrap JavaScript


适用

课程设计,大作业,毕业设计,项目练习,学习演示等

          
            <if test="typeCode !=null  &amp;&amp;  typeCode != '' ">
                and type_code like CONCAT("",#{typeCode},"%")
            </if>
            
            <if test="title !=null &amp;&amp; title != '' ">
               and title like CONCAT("%",#{title},"%")
            </if>
            
       
       </select>
       
       
            <if test="putawayDate != null">putaway_date = #{putawayDate},</if>
            <if test="storage != null">storage = #{storage},</if>
            <if test="image != null">image = #{image},</if>
            <if test="description != null">description = #{description},</if>
            <if test="typeCode != null">type_code = #{typeCode},</if>
            <if test="discount != null">discount = #{discount},</if>
        </trim>
        <where> id = #{id}</where>
       </update>
       
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.demo.shop.mapper.OrderMapper">
		//从session中获取用户信息
		int userId = ((User)session.getAttribute("session_user")).getId();
		
		
		return orderMapper.getOrdersByUserId(userId);
	}

	//修改订单状态
	@Override
	public void updateOrderPayOrderNo(String orderNo) {
		// TODO Auto-generated method stub
		orderMapper.updateOrderPayOrderNo(orderNo);
	}
	
	
	
	
}
/**
 *
 */
package com.demo.shop.controller;

import com.demo.shop.bean.Order;
						//submitUrl: list.action?pageIndex={0}
						jumpUrl = this.submitUrl.replace("{0}", String.valueOf(i));
						pager.append("<a href='"+jumpUrl+"'>"+i+"</a>");
					}
				}
				
				//拼装 ...
				pager.append("...");
				
				//拼装尾页
				//submitUrl: list.action?pageIndex={0}
				jumpUrl = this.submitUrl.replace("{0}", String.valueOf(totalPageNum));
				pager.append("<a href='"+jumpUrl+"'>"+totalPageNum+"</a>");
			 
			 //当前页码靠近尾页   1 ... 91 92 93 94 95 96 97 98 99 100
			}else if(this.pageIndex + 8 >= totalPageNum){
				jumpUrl = this.submitUrl.replace("{0}", String.valueOf(1));
	/**
	 * @param pageIndex the pageIndex to set
	 */
	public void setPageIndex(int pageIndex) {
		System.out.println("pageIndex:"+pageIndex);
		this.pageIndex = pageIndex;
	}


	/**
	 * @return the pageSize
	 */
	public int getPageSize() {
		return pageSize;
	}


	/**
	 * @param pageSize the pageSize to set
	 */
	public void setPageSize(int pageSize) {
					},
					"user.email" : {
						validators : {
							notEmpty : {
								message : '邮箱不能为空'
							},
							emailAddress : {
								message : '邮箱格式不正确'
							}
						}
					},
					"user.phone" : {
						validators : {
							notEmpty : {
								message : '电话不能为空'
							},
							phone : {
								message : '电话号码错误',
								country : 'CN'
							}
						}
					},
					"user.password" : {
						validators : {
							notEmpty : {
				<button type="button" class="navbar-toggle collapsed"
					data-toggle="collapse" data-target="#navbar" aria-expanded="false"
					aria-controls="navbar">
					<span class="sr-only">显示导航条</span> <span class="icon-bar"></span> <span
						class="icon-bar"></span> <span class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="${ctx}/article/index">美妆商城</a>
			</div>
			<div id="navbar" class="collapse navbar-collapse">
				<ul class="nav navbar-nav">
					<li class="active"><a href="${ctx}/article/index">首页</a></li>
					<li><a href="${ctx}/shopCar/showShopCar.do">购物车</a></li>
					<li><a href="${ctx}/order/showOrder.do">我的订单</a></li>
				</ul>

				<ul class="nav navbar-nav navbar-right">
					<c:choose>
						<c:when test="${not empty session_user}">
						  	<li><a href="#"> <span style='color: red;'></span>
							</a></li>
							<li><a href="#">欢迎[<font color="red">${session_user.name}</font>]访问!</a></li>
							<li><a href="${ctx}/user/logout">退出</a></li>
							<li><a href="${ctx}/register">免费注册</a></li>

	/* (non-Javadoc)
	 * 进行更新商品类型操作
	 */
	@Override
	public void updateArticleType(ArticleType type) {
		// TODO Auto-generated method stub
		articleTypeMapper.updateArticleType(type);
	}

	/* (non-Javadoc)
	 *  进行添加商品类型操作
	 */
	@Override
	public void saveArticleType(ArticleType type, String parentCode) {
		// TODO Auto-generated method stub
		StringBuffer code = new StringBuffer();
									    </div>
									  </div>
									   
									   <div class="control-group">
									    <label class="control-label">详细地址:</label>
									    <div class="controls">
									      <input type="text" class="input-large">
									    </div>
									  </div>
									   <div class="control-group">
									    <label class="control-label">联系电话:</label>
									    <div class="controls">
									      <input type="text" class="input-medium">
									    </div>
									  </div>
									   <div class="control-group">
									    <label class="control-label">邮箱:</label>
									    <div class="controls">
									      <input type="text" class="input-medium">
									    </div>
									  </div>
									   <div class="control-group">
									    <label class="control-label">地址别名:</label>
									    <div class="controls">
									      <input type="text" class="input-medium">
									    </div>
			
			//指定订单的总金额
			order.setAmount(totalPrice);
			
			//保存订单信息 ,保存完订单信息之后,需要获取订单的id,因为需要将订单的id存放在订单详情中
			orderMapper.saveOrder(order);
			
			//获取订单主键的值
			int orderId = order.getId();
			for(OrderItem item : items) {
				item.setOrderId(orderId);
				//保存订单明细
				orderItemMapper.saveItem(item);
			}
			
			
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.demo.shop.bean.Article;
import com.demo.shop.bean.ArticleType;
import com.demo.manage.service.ManagerArticleServiceI;
import com.demo.manage.service.ManagerArticleTypeServiceI;
import com.demo.manage.util.pager.PageModel;


@Controller
@RequestMapping("/article_manager")
public class ManagerArticleController {
	
	 @Autowired   
	 private ManagerArticleServiceI articleService;
	 
	 @Autowired   
	 private ManagerArticleTypeServiceI articleTypeService;
							<li>购物流程</li>
							<li>会员介绍</li>
							<li>生活旅行/团购</li>
							<li>常见问题</li>
							<li>购物指南</li>
						</ul>

					</div>
					<div class="yui3-u-1-6">
						<h4>配送方式</h4>
						<ul class="unstyled">
							<li>上门自提</li>
							<li>211限时达</li>
							<li>配送服务查询</li>
							<li>配送费收取标准</li>
							<li>海外配送</li>
						</ul>
					</div>
					<div class="yui3-u-1-6">
						<h4>支付方式</h4>
						<ul class="unstyled">
<script src="${pageContext.request.contextPath }/resources/jquery/jquery.min.js"></script>
<script src="${pageContext.request.contextPath }/resources/bootstrap/js/bootstrap.js"></script>
<script src="${pageContext.request.contextPath }/resources/js/taobao.js"></script>
<script type="text/javascript">
    $(function(){
       /*  $("#secondType").val("${secondType}");
        $("#addTypeCode").val("${typeCode}"); */
    })

</script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
        
        
        //校验账号是否存在
        function validName(obj){
        	if(obj.value!=null && obj.value !=""){
        		
        		$.ajax({
         		   type: "POST",
         		   url: "${pageContext.request.contextPath}/user_manager/validName",
         		   data: "loginName="+obj.value,
         		   success: function(msg){
         		     if(msg == "exist"){
         		    	 alert("账号已存在,请重新输入!");
         		    	 obj.value = "";
         		     }
         		   }
         		});

    /**
     * 获取当前时间戳,单位秒
     * @return
     */
    public static long getCurrentTimestamp() {
        return System.currentTimeMillis()/1000;
    }

    /**
     * 获取当前时间戳,单位毫秒
     * @return
     */
    public static long getCurrentTimestampMs() {
        return System.currentTimeMillis();
    }

            
            limit #{pageModel.startNum} , #{pageModel.pageSize}
       
       </select>
       
       <!-- 查询商品总记录数 -->
       <select id="getTotalNum" resultType="int">
          select count(*) from ec_article  where disabled = '0'
          
            <if test="typeCode !=null  &amp;&amp;  typeCode != '' ">
                and type_code like CONCAT("",#{typeCode},"%")
            </if>
            
            <if test="title !=null &amp;&amp; title != '' ">
               and title like CONCAT("%",#{title},"%")
            </if>
            
       
       </select>
       
       
       <insert id="saveArtice">
              insert into ec_article(title, supplier, price, locality, putaway_date,
        storage, image, description, type_code, create_date)
        values(#{title}, #{supplier}, #{price}, #{locality},
        #{putawayDate}, #{storage}, #{image},

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,基于JavaWEB+MySQL的二手闲置物品交易网站系统,我将从如下几个方面进行介绍: 1. 技术选型 JavaWeb框架:Spring MVC、Spring、MyBatis 前端框架:Bootstrap、jQuery、Vue.js 数据库:MySQL 2. 功能模块 用户模块:包括用户登录、注册、个人信息管理等功能。 商品模块:包括商品的添加、修改、删除、展示等功能。 交易模块:包括购物车、下单、支付、退款、评价等功能。 后台管理模块:包括管理员登录、商品管理、订单管理、用户管理等功能。 搜索模块:包括关键字搜索、筛选搜索等功能。 3. 系统架构 前端采用MVC架构,后端采用三层架构,即表示层、业务逻辑层和数据访问层。 4. 数据库设计 用户表:包括用户ID、用户名、密码、手机号、邮箱等字段。 商品表:包括商品ID、卖家ID、商品名称、商品描述、价格、状态等字段。 订单表:包括订单ID、买家ID、商品ID、订单状态、订单金额等字段。 管理员表:包括管理员ID、用户名、密码、手机号、邮箱等字段。 5. 性能优化 数据库优化:使用索引、分表、分区等方式提升数据库性能。 缓存优化:使用缓存技术如Redis、Memcached等提升系统性能。 代码优化:使用线程池、异步处理等方式提升系统并发能力。 以上是基于JavaWEB+MySQL的二手闲置物品交易网站系统的介绍,希望能够对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值