码迷,mamicode.com
首页 > 编程语言 > 详细

javaWEB网上商城项目之需求分析

时间:2016-02-04 00:22:55      阅读:1518      评论:0      收藏:0      [点我收藏+]

标签:

跟随某视频教程练手项目.写的不是很详细,因为重点是学开发技巧,不过大体差不多的


一.需求确定

  • 用户浏览商品
  • 用户搜索商品
  • 用户注册会员
  • 会员价系统
  • 购物车
  • 会员自助服务管理
  • 管理员后台管理(包括人员,商品的管理)

二.架构分析设计

逻辑架构

  • JSP+JavaBean+Database
  • JSP负责表现
  • JavaBean负责逻辑
  • Database负责持久保持数据

软件环境

  • 开发工具intellij idea
  • Tomcat 8.0
  • mysql5.5

三.业务逻辑

  • 会员类–包装系统会员,与订单类一对多关系
  • 管理员类–包装系统管理员
  • 产品类–包装产品信息,与订单多对多关系
  • 类别类–包装产品类别,树状结构,与产品多对一
  • 订单类–包装订单信息,与产品多对多,与会员多对一
  • 购物车类–包装购物车信息,与产品多对一

具体里面的参数和函数以后用UML补充

四,数据库设计

create table user 
(
id int primary key auto_increment,//主键自动递增
username varchar(40),//用户名
password varchar(16),//密码
phone varchar(40),
addr varchar(255),
rdate datetime//注册日期
);
create table category
(
id int primary key auto_increment,
pid int, #pid为0的是最顶层节点
name varchar(255), 
descr varchar(255),
cno int, #最多三层, 每层占两位, 最多99个子节点
grade int #代表级别, 从1开始
);
create table product
(
id int primary key auto_increment,
name varchar(255),//产品名
descr varchar(255),//描述
normalprice double,//市场价
memberprice double,//会员价
pdate datetime,//上柜日期
categoryid int references catetory(id)//外键
);
create table salesorder
(
id int primary key auto_increment,
userid int,
addr varchar(255),
odate datetime,//下单时间
status int//0未处理单 1处理单 2废单
);
create table salesitem 
(
id int primary key auto_increment,
productid int, //产品id
unitprice double, //单价
pcount int,
orderid int references salesorder(id)//外键
);

五,界面设计

前台

  • 首页index.jsp
  • 搜索界面search.jsp
  • 搜索结果searchresult.jsp
  • 注册register.jsp
  • 注册失败registererr.jsp
  • 注册成功registerok.jsp
  • 登录login.jsp
  • 登录成功loginok.jsp
  • 登录失败loginerr.jsp
  • 自助服务selfservice.jsp
  • 购物车car.jsp
  • 结账buy.jsp

后台

  • 登录login.jsp
  • 首页index.jsp
  • 用户管理(显示,删除,搜索)
  • 产品管理(增删改查)
  • 类别管理(增删改查)
  • 订单浏览salesorderlist.jsp
  • 订单处理salesorderdeal.jsp

六,开发流程

V0.1先写用户
V0.2在写分类
V0.3然后产品
V0.4接下来购物
V0.5最后订单处理
V0.6其他功能

七,创建基本项目

执行sql语句,建立表,接着建立javaWEB项目,创建com.SQLHelper包,创建SQLHelper类,用于连接数据库
技术分享

SQLHelper源代码

package com.SQLhelper;

import java.sql.*;

/**
 * Created by nl101 on 2016/2/1.
 */
public class SQLHelper {
    //初始化方法
    private Connection conn = null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;
    private String driverURL = "com.mysql.jdbc.Driver";
    private String URL = "jdbc:mysql://localhost:3306/bbs";
    private String username = "root";
    private  String password = "7946521";


    /**
     * 初始化conn连接
     */
    public SQLHelper(){
        try {
            Class.forName(driverURL);
            conn = DriverManager.getConnection(URL,username,password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.err.println("驱动加载失败");
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println("数据库连接失败");
        }
    }

    /**
     * 数据库更新
     * @param sql sql语句
     * @param params 附加参数
     * @return true更新成功,false更新失败
     */
    public boolean update(String sql,String[] params){
        int k = 0;
        try {
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setString(i+1,params[i]);
            }
           k = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println("更新失败");
        }
            return k > 0;
    }
    /**
     * 数据库更新
     * @param sql sql语句
     * @return true更新成功,false更新失败
     */
    public boolean update(String sql){
        int k = 0;
        try {
            ps = conn.prepareStatement(sql);
           k = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println("更新失败");
        }
            return k > 0;
    }

    /**
     * 查询函数
     * @param sql 查询语句
     * @param params 附加参数
     * @return 返回查询结果集
     */
    public ResultSet query(String sql,String[] params){
        try {
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setString(i+1,params[i]);
            }
            rs = ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println("查询失败");
        }
        return rs;
    }
    /**
     * 查询函数
     * @param sql 查询语句
     * @return 返回查询结果集
     */
    public ResultSet query(String sql){
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
            System.err.println("查询失败");
        }
        return rs;
    }

    /**
     * 关闭数据库连接
     */
    public void close(){
        try {
            if (rs!=null) rs.close(); rs = null;
            if (ps!=null) ps.close(); ps = null;
            if (conn!=null) conn.close(); conn = null;
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    /**
     * 取得链接
     * @return
     */
    public Connection getConn() {
        return conn;
    }
}

接下来的文章开始写用户类

javaWEB网上商城项目之需求分析

标签:

原文地址:http://blog.csdn.net/u012706811/article/details/50631487

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!