《综合课程设计---订餐网站》
https://github.com/Yangqifeng00/TouchFood
目录
一选题背景
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
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对象)映射成数据库中的记录。
-
- ssm整合
- mybatis配置文件(resource/mybatis/SqlMapConfig.xml)
- ssm整合
<?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>
-
-
- 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 使用mybatis和spring整合包中的 -->
<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>
-
-
- 所有的实现类都放到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>
-
-
- 配置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>
-
-
- 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>
-
-
- 加载的属性配置文件(dbconfig.properties)
-
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/touchfood?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
-
-
- 配置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对功能的规定
- 网站前台功能
2.2.2.1 用户登录
完成用户的注册以及登录功能,其中注册包括必填信息(用户名、密码、确认密码)和选填信息(性别、年龄、QQ、邮箱、地址);登录包括用户名和密码。
当打开网站的主页后,用户可以通过登录窗口进行登录操作。登录时,需填写用户名称和密码。如果登录成功返回主页面。如果登录失败,返回登录页面。
2.2.2.2用户注册
在咖啡网站的主页中提供新用户注册功能,新用户需要填写用户名(电话号码),密码并上传头像,用户可选择填写性别,年龄,qq,邮箱,若不填,则年龄默认为18,其他默认为空.用户注册信息还必须符合以下规则:
- 用户名必须为电话号码;
- 密码为6-14位数字或者英文字母;
- 电子邮箱地址必须是合法格式;
- 年龄,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设计原则,我设计了以下各子模块的用户界面。
- 前台
- 登录
-
- 注册
-
- 主页
-
- 商品浏览
-
- 购买页面
-
- 个人信息
-
- 我的购买
3.2.2 内部接口
3.2.2.1 内部接口框图
3.3 数据库结构设计
3.3.1 用户表userlist
Name Type Nullable Default Comments
------------- ------------ -------- ------- --------
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 时间
转载自原文链接, 如需删除请联系管理员。
原文链接:《综合课程设计---订餐网站》,转载请注明来源!