首页 » 技术分享 » 《综合课程设计---订餐网站》

《综合课程设计---订餐网站》

 

《综合课程设计---订餐网站》

 

https://github.com/Yangqifeng00/TouchFood

目录

网站的开发... 2

一选题背景... 2

1.1        关于ssm.. 2

1.1.1        Spring. 2

1.1.2        SpringMVC. 2

1.1.3    MyBatis 2

1.2        ssm整合... 2

二 需求分析... 8

2.1任务概述... 8

2.1.1 目标... 8

2.2需求规定... 9

2.2.1 总体需求... 9

2.2.2对功能的规定.. 9

三概要设计... 10

3.1  总体设计... 10

3.1.1  处理流程... 10

3.1.2  功能分配... 12

3.2  接口设计... 13

3.2.1  外部接口... 13

3.2.2  内部接口... 17

3.3  数据库结构设计... 18

3.3.1  用户表userlist. 18

3.3.2  商品类型表 commodity_type 18

3.3.4  商品表 commodity_info. 18

3.3.5  管理员表 admin. 错误!未定义书签。

3.3.5  订单 order_. 18

3.3.5  订单项目 orderitem.. 19

四.结论与总结... 19

 

咖啡网站的开发

一选题背景

    1. 关于ssm

      1. Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

      1. SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.1.3 MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    1. ssm整合

      1. mybatis配置文件(resource/mybatis/SqlMapConfig.xml)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

      "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

</configuration>

 

 

      1. Dao,mybatis整合spring,通过spring管理SqlSessionFactory、mapper代理对象

(resource/spring/applicationContext-dao.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

 

    <!-- 数据库连接池 -->

    <!-- 加载配置文件 -->

    <context:property-placeholder location="classpath:*.properties" />

    <!-- 数据库连接池 -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

        destroy-method="close">

        <property name="url" value="${jdbc.url}" />

        <property name="username" value="${jdbc.username}" />

        <property name="password" value="${jdbc.password}" />

        <property name="driverClassName" value="${jdbc.driver}" />

        <property name="maxActive" value="10" />

        <property name="minIdle" value="5" />

    </bean>

    <!-- spring管理sqlsessionfactory 使用mybatisspring整合包中的 -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 数据库连接池 -->

        <property name="dataSource" ref="dataSource" />

        <!-- 加载mybatis的全局配置文件 -->

        <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />

    </bean>

    <!-- 自动扫描 Mapper接口生成代理注入到Spring -->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <property name="basePackage" value="com.mapper" />

    </bean>

</beans>

 

      1. 所有的实现类都放到spring容器中管理。由spring创建数据库连接池,并有spring管理实务。

(resource/spring/applicationContext-service.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

       

        <!-- spring自动去扫描base-pack下面或者子包下面的java文件-->

        <!--管理Service实现类-->

        <context:component-scan base-package="com.service"/>

</beans>

 

      1. 配置spring管理实务

(resource/spring/applicationContext-trans.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd

    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

    <!-- 事务管理器 -->

    <bean id="transactionManager"

        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <!-- 数据源 -->

        <property name="dataSource" ref="dataSource" />

    </bean>

    <!-- 通知 -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

        <tx:attributes>

            <!-- 传播行为 -->

            <tx:method name="save*" propagation="REQUIRED" />

            <tx:method name="insert*" propagation="REQUIRED" />

            <tx:method name="add*" propagation="REQUIRED" />

            <tx:method name="create*" propagation="REQUIRED" />

            <tx:method name="delete*" propagation="REQUIRED" />

            <tx:method name="update*" propagation="REQUIRED" />

            <tx:method name="find*" propagation="SUPPORTS" read-only="true" />

            <tx:method name="select*" propagation="SUPPORTS" read-only="true" />

            <tx:method name="get*" propagation="SUPPORTS" read-only="true" />

        </tx:attributes>

    </tx:advice>

    <!-- 切面 -->

    <aop:config>

        <aop:advisor advice-ref="txAdvice"

            pointcut="execution(* com.service.*.*(..))" />

    </aop:config>

</beans>

 

      1. Springmvc整合spring框架,由springmvc管理controller

(resource/spring/springmvc.xml)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

   

    <!-- 扫描controller -->

    <context:component-scan base-package="com.controller" />

   

    <!-- Spring 来扫描指定包下的类,并注册被@Component@Controller@Service@Repository等注解标记的组件 -->

    <mvc:annotation-driven />

   

    <!-- 2.静态资源默认servlet配置 (1)加入对静态资源的处理:js,gif,png (2)允许使用"/"做整体映射 -->

    <mvc:resources mapping="/resources/**" location="/resources/" />

    <mvc:default-servlet-handler />

   

   

    <!-- 配置SpringMVC的视图解析器-->

    <bean

       class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix" value="/WEB-INF/" />

        <property name="suffix" value=".jsp" />

    </bean>

   

    <!-- spring-mvc.xml文件中加入这段配置后,spring返回给页面的都是utf-8编码了 -->

    <bean

    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

        <property name="messageConverters">

            <list>

                <bean

                    class="org.springframework.http.converter.StringHttpMessageConverter">

                   <property name="supportedMediaTypes">

                       <list>

                           <value>text/html;charset=UTF-8</value>

                       </list>

                   </property>

                </bean>

            </list>

        </property>

    </bean>

    <!-- 4.扫描web相关的bean -->

    <context:component-scan base-package="com.controller" />

   

    <!-- 默认启动controller方法,即启动首页

    <mvc:view-controller path="/" view-name="redirect:jspController/adminLogin.do" />-->

   

    <mvc:view-controller path="/" view-name="redirect:commodity_info/ListCommodity.do" />

</beans>

 

      1. 加载的属性配置文件(dbconfig.properties)

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/touchfood?characterEncoding=utf-8

jdbc.username=root

jdbc.password=root

 

      1. 配置log4j

log4j.rootLogger=error,CONSOLE,A

log4j.addivity.org.apache=false

 

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.Threshold=error

log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r [%t] %-5p  %x - %m%n

log4j.appender.CONSOLE.Target=System.out

log4j.appender.CONSOLE.Encoding=gbk

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

 

 

log4j.appender.A=org.apache.log4j.DailyRollingFileAppender 

log4j.appender.A.File=${catalina.home}/logs/FH_log/PurePro_

log4j.appender.A.DatePattern=yyyy-MM-dd'.log'

log4j.appender.A.layout=org.apache.log4j.PatternLayout 

log4j.appender.A.layout.ConversionPattern=[FH_sys]  %d{yyyy-MM-dd HH\:mm\:ss} %5p %c{1}\:%L \: %m%n

 

需求分析

2.1任务概述

2.1.1 目标

这次设计的主要任务是利用流行的ssm框架构建一个简单的咖啡网站。由于ssm框架本人也属于初学阶段,再加上项目经验不足,时间有限,所以编写的咖啡网站只具备最基本的商务功能。

完成后的设计成果应该满足一下基本要求:

1.  能正确使用ssm框架;

2.高内聚 低耦合

3.  拥有一个咖啡网站的基本功能,其中包括:商品列表、商品管理、订单管理、销售统计、会员管理、用户登录、订单生成等等;

7.  系统应尽量拥有用户界面友好、使用简洁方便、运行速度快、远程维护方便、系统稳定可靠、易于扩展等特性。

2.2需求规定

2.2.1 总体需求

开发一个类似网上商城的咖啡网站,方便客户浏览以及购买咖啡。

 

2.2.2对功能的规定

  1. 网站前台功能

2.2.2.1 用户登录

完成用户的注册以及登录功能,其中注册包括必填信息(用户名、密码、确认密码)和选填信息(性别、年龄、QQ、邮箱、地址);登录包括用户名和密码。

当打开网站的主页后,用户可以通过登录窗口进行登录操作。登录时,需填写用户名称和密码。如果登录成功返回主页面。如果登录失败,返回登录页面。

2.2.2.2用户注册

在咖啡网站的主页中提供新用户注册功能,新用户需要填写用户名(电话号码),密码并上传头像,用户可选择填写性别,年龄,qq,邮箱,若不填,则年龄默认为18,其他默认为空.用户注册信息还必须符合以下规则:

  1. 用户名必须为电话号码;
  2. 密码为6-14位数字或者英文字母;
  3. 电子邮箱地址必须是合法格式;
  4. 年龄,qq必须是数字;

2.2.2.3首页商品展示

从数据库获取商品信息,展示在前端页面。首页商品由后台数据库的分类在首页可分类展示,即同一类商品可一同展示。另外可以搜索页面内的商品。

 

2.2.2.4用户个人信息管理

1.个人资料:更新个人的基本信息,允许更新的基本信息有:头像,用户名,密码,年龄,qq,性别,邮箱,地址.

2.2.2.5商品详情及购买

1. 用户从首页点击商品进入商品详情页面,可进行商品的加购操作

 

2.2.2.6  订单生成

1. 当用户完成所有的咖啡选购后,即可在我的购买上浏览到购买咖啡的明细信息,其中包括:咖啡名称、价格、数量、总价。最后确认订单。

2. 订单页面可查看历史订单。

三概要设计

3.1  总体设计

3.1.1  处理流程

3.1.1.1  客户浏览信息流程图

3.1.1.2  个人信息管理流程图

 

 

3.1.2  功能分配

3.1.2.1  前台功能结构图

 

3.2  接口设计

3.2.1  外部接口

3.2.1.1  用户界面接口

一个好的应用系统,不光要有严密的逻辑结构,和科学的算法。美观大方的界面也是很重要的。毕竟您的设计是针对某个用户的,而每个用户都有自己的审美观。所以本着美观、大方、实用的UI设计原则,我设计了以下各子模块的用户界面。

  1. 前台

    1. 登录

 

    1. 注册

 

    1. 主页

 

 

 

 

    1. 商品浏览

 

 

    1. 购买页面

 

 

 

    1. 个人信息

 

 

    1. 我的购买

 

3.2.2  内部接口

3.2.2.1  内部接口框图

         

3.3  数据库结构设计

3.3.1  用户表userlist

Name          Type         Nullable Default Comments

------------- ------------ -------- ------- --------

id          int(11)    

username    varchar(11)     Y                  用户编号

password    varchar(50)     Y                  用户名

tou_img     varchar(255)    Y                  用户密码

sex         char(4)         Y                  性别

age         int(4)          Y           18      年龄

qq          varchar(50)     Y                  qq

e_mail     varchar(50)     Y                  邮箱

uaddress        varchar(255)    Y                  地址

3.3.2  商品类型表 commodity_type

Name        Type           Nullable Default Comments

----------- -------------- -------- ------- --------

id          int(11)                        类型编号

name        varchar(255)    Y               类型名

desc        varchar(255)    Y               类型描述

3.3.4  商品表 commodity_info

Name        Type           Nullable Default Comments

----------- -------------- -------- ------- --------

id          int(11)                        商品编号

name       varchar(255)    Y               商品名

type       int(11)         Y               商品类型编号

price      varchar(20)     Y               商品价格

lg_img  varchar(255)        Y               商品大图片

sm_img  varchar(255)        Y               商品小图片

desc       varchar(255)    Y               商品描述

 

3.3.5  订单 order_

Name        Type        Nullable Default    Comments

--------    ---------   -------- -------    --------

id          int(11)                        订单编号

uid         int(11)     Y                   用户编号

3.3.6  订单项目 orderlist

Name        Type        Nullable Default    Comments

--------    ---------   -------- -------    --------

id          int(11)                        订单项目编号

pid         int(11)     Y                   商品编号

name       varchar(255)    Y               商品名

sm_img  varchar(255)        Y               商品小图片

price      varchar(20)     Y               商品价格

couprice       varchar(20)     Y           商品总价格

num         int(11))    Y                   购买数量

oid         int(11)     Y                   订单编号

 

3.3.7  评价项目 message

Name        Type        Nullable Default    Comments

--------    ---------   -------- -------    --------

id          int(11)                        订单项目编号

pid         int(11)         Y               商品编号

username    varchar(255)    Y               用户名

content    varchar(200)    Y               评论内容

mess_time   timestamp       Y               时间

转载自原文链接, 如需删除请联系管理员。

原文链接:《综合课程设计---订餐网站》,转载请注明来源!

0