1、采用MVC设计模式

分层架构:展现层(JSP)<——>控制层(Servlet)<——>业务层(Service)<——>模型层(Dao)<——>数据库(DB)
2、前台

(1)登录——显示商品类别——显示某类商品信息——查看购物车——生成订单——支付

(2)注册<——>登录

3、后台

(1)用户管理

(2)类别管理

(3)商品管理

(4)订单管理

说明:只完成了用户管理中的查看用户功能。其他功能,有兴趣的不妨拿来操练一下。
4、西蒙购物网业务流程图

1.新建数据库

/*
Navicat MySQL Data TransferSource Server         : hwsql
Source Server Version : 50518
Source Host           : localhost:3306
Source Database       : simonshopTarget Server Type    : MYSQL
Target Server Version : 50518
File Encoding         : 65001Date: 2017-02-16 09:21:41
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for `t_category`
-- ----------------------------
DROP TABLE IF EXISTS `t_category`;
CREATE TABLE `t_category` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品类别标识符',`name` varchar(100) NOT NULL COMMENT '商品类别名称',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_category
-- ----------------------------
INSERT INTO `t_category` VALUES ('1', '家用电器');
INSERT INTO `t_category` VALUES ('2', '床上用品');
INSERT INTO `t_category` VALUES ('3', '文具用品');
INSERT INTO `t_category` VALUES ('4', '休闲食品');-- ----------------------------
-- Table structure for `t_order`
-- ----------------------------
DROP TABLE IF EXISTS `t_order`;
CREATE TABLE `t_order` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单标识符',`username` varchar(20) DEFAULT NULL COMMENT '用户名',`telephone` varchar(11) DEFAULT NULL COMMENT '电话号码',`total_price` double DEFAULT NULL COMMENT '总金额',`delivery_address` varchar(50) DEFAULT NULL COMMENT '送货地址',`order_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '下单时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_order
-- ----------------------------
INSERT INTO `t_order` VALUES ('1', '郑晓红', '13956567889', '2000', '泸职院信息工程系', '2016-12-25 17:12:36');
INSERT INTO `t_order` VALUES ('2', '温志军', '13956678907', '1000', '泸职院机械工程系', '2016-12-02 17:12:17');-- ----------------------------
-- Table structure for `t_product`
-- ----------------------------
DROP TABLE IF EXISTS `t_product`;
CREATE TABLE `t_product` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品标识符',`name` varchar(200) NOT NULL COMMENT '商品名称',`price` double DEFAULT NULL COMMENT '商品单价',`add_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,`category_id` int(11) DEFAULT NULL COMMENT '商品类别标识符',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_product
-- ----------------------------
INSERT INTO `t_product` VALUES ('1', '容声电冰箱', '2000', '2016-12-20 09:54:41', '1');
INSERT INTO `t_product` VALUES ('2', '松下电视', '5000', '2016-12-20 09:54:35', '1');
INSERT INTO `t_product` VALUES ('3', '红岩墨水', '3', '2016-12-20 09:56:05', '3');
INSERT INTO `t_product` VALUES ('4', '海尔洗衣机', '1000', '2016-11-30 08:58:09', '1');
INSERT INTO `t_product` VALUES ('5', '新宇电饭煲', '1200', '2016-12-20 09:55:11', '1');
INSERT INTO `t_product` VALUES ('6', '英雄微波炉', '600', '2016-12-20 09:55:39', '1');
INSERT INTO `t_product` VALUES ('7', '红双喜席梦思', '700', '2016-11-28 08:59:38', '2');
INSERT INTO `t_product` VALUES ('8', '旺仔牛奶糖', '24.4', '2016-12-20 10:00:11', '4');
INSERT INTO `t_product` VALUES ('9', '西蒙枕头', '100', '2016-12-20 09:56:57', '2');
INSERT INTO `t_product` VALUES ('10', '甜甜毛毯', '400', '2016-12-20 09:57:26', '2');
INSERT INTO `t_product` VALUES ('11', '永久钢笔', '50', '2016-12-20 09:57:30', '3');
INSERT INTO `t_product` VALUES ('12', '硬面抄笔记本', '5', '2016-12-20 09:57:53', '3');
INSERT INTO `t_product` VALUES ('13', '晨光橡皮擦', '0.5', '2016-11-30 09:02:40', '3');
INSERT INTO `t_product` VALUES ('14', '美的空调', '3000', '2016-11-03 09:03:02', '1');
INSERT INTO `t_product` VALUES ('15', '迷你深海鱼肠', '14.4', '2016-12-02 10:01:14', '4');-- ----------------------------
-- Table structure for `t_user`
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(20) NOT NULL,`password` varchar(20) DEFAULT NULL,`telephone` varchar(11) DEFAULT NULL,`register_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,`popedom` int(11) DEFAULT NULL COMMENT '0:管理员;1:普通用户',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('1', 'admin', '12345', '15734345678', '2016-12-02 08:40:35', '0');
INSERT INTO `t_user` VALUES ('2', '郑晓红', '11111', '13956567889', '2016-12-20 09:51:43', '1');
INSERT INTO `t_user` VALUES ('3', '温志军', '22222', '13956678907', '2016-12-20 09:52:36', '1');
INSERT INTO `t_user` VALUES ('4', '涂文艳', '33333', '15890905678', '2016-12-05 09:52:56', '1');

2,创建web项目simonshop

user代码
package net.lwy.shop.bean;

import java.util.Date;

public class User {
/**
* 用户标识符
/
private int id;
/
*
* 用户名
/
private String username;
/
*
* 密码
/
private String password;
/
*
* 电话号码
/
private String telephone;
/
*
* 注册时间
/
private Date registerTime;
/
*
* 权限(0:管理员;1:普通用户)
*/
private int popedom;

public int getId() {return id;
}public void setId(int id) {this.id = id;
}public String getUsername() {return username;
}public void setUsername(String username) {this.username = username;
}public String getPassword() {return password;
}public void setPassword(String password) {this.password = password;
}public String getTelephone() {return telephone;
}public void setTelephone(String telephone) {this.telephone = telephone;
}public Date getRegisterTime() {return registerTime;
}public void setRegisterTime(Date registerTime) {this.registerTime = registerTime;
}public int getPopedom() {return popedom;
}public void setPopedom(int popedom) {this.popedom = popedom;
}@Override
public String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + ", telephone=" + telephone+ ", registerTime=" + registerTime + ", popedom=" + popedom + "]";
}

}
category代码

package net.lwy.shop.bean;public class Category {/*** 类别标识符*/private int id;/*** 类别名称*/private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Category [id=" + id + ", name=" + name + "]";}}

数据库连接代码

package net.lwy.shop.bean.doutil;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;import javax.swing.JOptionPane;public class ConnectionManager {/*** 数据库驱动程序*/private static final String DRIVER = "com.mysql.jdbc.Driver";/*** 数据库统一资源标识符*/private static final String URL = "jdbc:mysql://localhost:3306/simonshop";/*** 数据库用户名*/private static final String USERNAME = "root";/*** 数据库密码*/private static final String PASSWORD = "root";/*** 私有化构造方法,拒绝实例化*/private ConnectionManager() {}/*** 获得数据库连接** @return 数据库连接对象*/public static Connection getConnection() {// 定义数据库连接Connection conn = null;try {// 安装数据库驱动程序Class.forName(DRIVER);// 获得数据库连接conn = DriverManager.getConnection(URL+ "?useUnicode=true&characterEncoding=UTF8", USERNAME, PASSWORD);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}// 返回数据库连接return conn;}/*** 关闭数据库连接** @param conn*/public static void closeConnection(Connection conn) {// 判断数据库连接是否为空if (conn != null) {// 判断数据库连接是否关闭try {if (!conn.isClosed()) {// 关闭数据库连接conn.close();}} catch (SQLException e) {e.printStackTrace();}}}/*** 测试数据库连接是否成功** @param args*/public static void main(String[] args) {// 获得数据库连接Connection conn = getConnection();// 判断是否连接成功if (conn != null) {JOptionPane.showMessageDialog(null, "恭喜,数据库连接成功!");} else {JOptionPane.showMessageDialog(null, "遗憾,数据库连接失败!");}// 关闭数据库连接closeConnection(conn);}}

在web项目数据库建mysql驱动包

项目下的包

14周 上 购物案列相关推荐

  1. 文件分段上传案列(参考b站小野森森老师的课)

    文件分段上传案列 1.什么是分片上传 分片上传,就是将所要上传的文件,按照一定的大小,分割成多个块,来进行分别上传,上传完成之后再由后端进行合并,也就是不断往一个文件里append,直到合并成一个完整 ...

  2. Java Web应用案列:蒙西购物1

    Java Web应用案列:蒙西购物 功能需求 1.只有注册用户成功登录之后才可查看商品类别,查看商品,选购商品,生成订单.查看订单. 2.只有管理员才有权限进行购物网后台管理(用户管理+类别管理+商品 ...

  3. Android 电子签名,手写签名案列实现方法,并上传网页显示(base64)!

    最近说项目可能会用到一个电子签名,不需要识别的那种,只是一个单纯手写签名,然后以base64的格式提供给前端web页面.其实挺简单的,自定义一个手写view就上线了.Android 电子签名,手写签名 ...

  4. 13/14周练习解析

    A:小明这学期学习了程序设计这门课程,这门课程的总成绩计算方法是: 总成绩=在线做题成绩×20%+小测成绩×30%+期末考试成绩×50% 请算算小明这门课程最终能得到多少分. 输入 输入一行,三个非负 ...

  5. 客户组网服务案列_信息报道丨云浮支撑服务中心2020年第五期

    本期导读 1.云浮支撑服务中心副总经理杨先权带领渠道中心到新兴开展调研 2.云浮移动.云浮铁通就提升装维入格管理及随销业务召开沟通交流会 3.云浮支撑服务中心副总经理牛占堂带领支撑部到金山网格进行网格 ...

  6. python数字推盘_从零开始学编程做游戏:一个文科生策划的14周

    点击 "humans flee" 按钮则人类移动一回合,点击 "zombies stalk" 按钮则僵尸移动一回合.它们采取的寻路策略都是广度优先搜索.游戏不会 ...

  7. 决策树分类基本原理加案列说明

    目录 1.认识决策树 2.决策树分类原理 2.1 熵 2.1.1 概念 2.1.2 案例 2.2 决策树的划分依据-----信息增益 2.2.1 概念 2.2.2 案列: 2.3 决策树的划分依据二- ...

  8. 软件需求工程与UML建模14组14周工作情况

    工作进展小结 一.原始工作计划 第11周:定项目主题:完成了人员分工和工作计划:与甲方沟通进行简单的需求获取. 第12周:通过课程学习的知识进一步进行需求获取:确定app概要设计,包括软件所实现的功能 ...

  9. SpringSecurity的简单使用使用案列说明

    SpringSecurity Spring Security是 Spring提供的安全认证服务的框架. 使用Spring Security可以帮助我们来简化认证 和授权的过程.官网:https://s ...

  10. JDBC的入门案列以及JDBC的对事务的管理

    JDBC的概念 Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中 ...

最新文章

  1. MoviePy - 中文文档4-MoviePy实战案例-把多个clip放置在一个画面中(超美)
  2. 我在学python-你们以为我在学C++?其实我在学Python!人生苦短!
  3. c++中结构体字符指针成员无法赋值
  4. C语言程序设计孙家啸第一版,广东年月自考各专业课程使用教材.doc
  5. 4段简短代码教你用Python读写Excel
  6. mysql 14.12_[mysql] 14.12 innodb下的 磁盘I/O与文件空间管理方式
  7. 邮件实用技巧九:如何快速查看历史邮件
  8. dpkg:处理 xxx (--configure)时出错解决办法(转载)
  9. mysql基础3-数据表的相关操作1
  10. Vegas安装出现问题怎么办?
  11. caffe的python接口学习(2):生成solver文件
  12. 牛客练习赛41 E 球的体积并
  13. 体百味人生,感产品之道
  14. Access数据库的.ldb文件
  15. 阿里实名认证Java版(详细教程)
  16. 微控制器编程技术c语言,8位单片机C语言编程:基于PIC16(用c语言对pic16微控制器进行编程的实用指导)...
  17. 迁移学习 --- 终身学习
  18. 牛客网、赛码网javascript在线编程的输入输出
  19. 数据结构课程主页-2016级
  20. AdvancedInstaller打包工具使用(五)

热门文章

  1. 3个步骤+1个模型,原来「数据分析」才是「增长黑客」的核心技能!
  2. php采集今日头条,用php蓝天采集器抓取今日头条ajax的文章内容
  3. C#学习 - XML Serialization
  4. 快来直播:坦然面对东方甄选与股价跌宕起伏
  5. OpenCV+Python车牌字符分割和识别入门 (含新能源车牌识别)
  6. 使用window.close()关闭标签页的注意事项
  7. [game]《泰坦陨落2》
  8. Linux——根目录结构
  9. 218分照样可以成为同声传译研究生3
  10. git 怎么把以前的账号注销_QQ号被注销了,我的游戏账号怎么办?腾讯只用一句话让玩家没话说...