javaweb实战之商城项目开发(一)

一.项目功能结构

1.功能

2.实体

3.对应sql语句

CREATE DATABASE shop;
use shop;

create table user(
 id int(11) primary key auto_increment,
 username varchar(100),
 password varchar(100),
 nickname varchar(100),
 type int(5)
);

INSERT INTO user VALUES (null,'admin','7946521','管理员',1);

CREATE TABLE address(
 id INT(10) PRIMARY KEY AUTO_INCREMENT,
 name VARCHAR(255),
 phone VARCHAR(100),
 postcode VARCHAR(100),
 user_id INT(10),
 CONSTRAINT FOREIGN KEY (user_id) REFERENCES user(id)
);
INSERT INTO address VALUES (NULL ,'安徽阜阳','1234567890','236000','1');

SELECT t1.*,t2.* FROM address t1 LEFT JOIN user t2 ON t1.user_id = t2.id where t1.user_id =1 ;

create table orders(
 id int(11) primary key auto_increment,
 buy_date datetime,
 pay_date datetime,
 confirm_date datetime,
 status int(5),
 user_id int(11),
 address_id int(11),
 CONSTRAINT FOREIGN KEY(user_id) REFERENCES user(id),
 CONSTRAINT FOREIGN KEY(address_id) REFERENCES address(id)
);

create table category(
 id int(11) primary key auto_increment,
 name varchar(100)
);

create table goods(
 id int(11) primary key auto_increment,
 name varchar(100),
 price double,
 intro text,
 img varchar(100),
 stock int(10),
 c_id int(10),
 CONSTRAINT FOREIGN KEY(c_id) REFERENCES category(id)
);

create table goods_orders(
 id int(11) primary key auto_increment,
 goods_id int(10),
 orders_id int(10),
 CONSTRAINT FOREIGN KEY(goods_id) REFERENCES goods(id),
 CONSTRAINT FOREIGN KEY(orders_id) REFERENCES orders(id)
);

二.项目准备

1.实体类实现

分别建立dao,filter,model,util的包,并在model中实现实体类,这里以User.java为例.

注意对于数据库中外键,比如adress表中有外键user_id,那么在Adress.java中就可以直接给个User对象,在取adress表的时候就把user一并取出来.

User.java

package com.model;

import java.util.List;

/**
 * Created by nl101 on 2016/2/22.
 */
public class User {
 private int id;//id
 private String username;
 private String password;
 private String nickname;//昵称
 private int type;//1表示管理员,2表示注册用户

 private List<Address> addresses;

 public List<Address> getAddresses() {
  return addresses;
 }

 public void setAddresses(List<Address> addresses) {
  this.addresses = addresses;
 }

 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 getNickname() {
  return nickname;
 }

 public void setNickname(String nickname) {
  this.nickname = nickname;
 }

 public int getType() {
  return type;
 }

 public void setType(int type) {
  this.type = type;
 }
}

Adress.java

package com.model;

/**
 * Created by nl101 on 2016/2/22.
 */
public class Address {
 private int id;
 private String name;
 private String phone;
 private String postcode;
 //直接给user对象,来代替user_id
 private User user;

 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;
 }

 public String getPhone() {
  return phone;
 }

 public void setPhone(String phone) {
  this.phone = phone;
 }

 public String getPostcode() {
  return postcode;
 }

 public void setPostcode(String postcode) {
  this.postcode = postcode;
 }

 public User getUser() {
  return user;
 }

 public void setUser(User user) {
  this.user = user;
 }
}

2.分页框架准备

分页主要是写pager.java和SystemContext.java以及SystemFilter.java三个类.

完整建立后如下

本文是项目实战的第一篇,之后还有更新,希望大家不要错过。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。