1、系统环境
2、数据库建表
启动mysql
服务
sudo systemctl start mysqld
登录mysql
mysql -u root -p
建立数据库(如果存在先删除)
drop database if exists `Bookstore`;
create database `Bookstore`;
use Bookstore;
建表(建好后通过show create table 表名
拷贝过来的,自己写的有点乱,注意字符集选取utf8mb4而不是utf8)
- 用户表
CREATE TABLE `tbl_User` (
`id` varchar(100) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`telephone` varchar(20) NOT NULL,
`registTime` timestamp NOT NULL,
`realname` varchar(10) DEFAULT NULL,
`gender` char(1) DEFAULT 'M',
`birthday` date DEFAULT NULL,
`activeCode` varchar(50) DEFAULT NULL,
`state` tinyint(4) DEFAULT NULL,
`role` varchar(10) DEFAULT 'normal',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 产品表
CREATE TABLE `tbl_Product` (
`id` varchar(100) NOT NULL,
`name` varchar(40) NOT NULL,
`price` double NOT NULL,
`category` varchar(40) NOT NULL,
`pnum` bigint(20) NOT NULL,
`imgurl` varchar(100) DEFAULT NULL,
`description` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 订单表
CREATE TABLE `tbl_Order` (
`id` varchar(100) NOT NULL,
`money` double NOT NULL,
`receiverAddress` varchar(255) NOT NULL,
`receiverName` varchar(20) NOT NULL,
`receiverPhone` varchar(20) NOT NULL,
`paystate` tinyint NOT NULL,
`ordertime` timestamp NOT NULL,
`user_id` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `tbl_User` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 订单条目表
CREATE TABLE `tbl_OrderItem` (
`order_id` varchar(100) NOT NULL,
`product_id` varchar(100) NOT NULL,
`buynum` int(11) DEFAULT NULL,
PRIMARY KEY (`order_id`,`product_id`),
KEY `product_id` (`product_id`),
CONSTRAINT `orderitem_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `tbl_Order` (`id`),
CONSTRAINT `orderitem_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `tbl_Product` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3、 SSM环境配置
IDE
1. 使用Maven新建工程
2. 完善目录结构
3. 配置依赖 —— POM文件(直接在Idea的Project Structure中配置依赖在刷新POM时会被丢弃)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ssm</groupId>
<artifactId>Bookstore</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Bookstore Maven Webapp</name>
<url>http://localhost:8080/Bookstore</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- spring 版本-->
<spring-version>5.1.6.RELEASE</spring-version>
</properties>
<!-- 依赖部分 -->
<dependencies>
<!-- Spring 核心 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- Spring Aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.3</version>
</dependency>
<!-- Spring Web相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-version}</version>
</dependency>