大家好,我是你的编程小伙伴。今天,我们要一起动手构建一个JSP在线书店数据库实例。别看标题这么长,其实操作起来很简单,跟着我一步步来,你也能成为一个数据库小高手哦!

一、准备工作

在我们开始之前,我们需要准备以下工具:

1. JDK:Java开发工具包,可以从官网下载。

2. Tomcat:Java Web服务器,可以从官网下载。

3. MySQL:关系型数据库管理系统,可以从官网下载。

4. Eclipse:Java集成开发环境,可以从官网下载。

二、创建数据库

1. 打开MySQL,创建一个新的数据库,命名为`bookstore`。

```sql

CREATE DATABASE bookstore;

```

2. 创建一个用户,用于访问数据库,例如`admin`。

```sql

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';

```

3. 授予权限,让用户可以访问`bookstore`数据库。

```sql

GRANT ALL PRIVILEGES ON bookstore.* TO 'admin'@'localhost';

```

4. 刷新权限。

```sql

FLUSH PRIVILEGES;

```

三、设计数据库表结构

我们在线书店需要以下表:

1. 用户表:存储用户信息。

用户ID

用户名

密码

邮箱

注册时间

2. 图书表:存储图书信息。

图书ID

图书名称

作者

出版社

价格

库存

3. 订单表:存储订单信息。

订单ID

用户ID

图书ID

订单时间

订单状态

4. 购物车表:存储购物车信息。

购物车ID

用户ID

图书ID

数量

四、创建表结构

1. 创建用户表。

```sql

CREATE TABLE user (

user_id INT PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(50) NOT NULL,

password VARCHAR(50) NOT NULL,

email VARCHAR(100) NOT NULL,

register_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

```

2. 创建图书表。

```sql

CREATE TABLE book (

book_id INT PRIMARY KEY AUTO_INCREMENT,

book_name VARCHAR(100) NOT NULL,

author VARCHAR(50),

publisher VARCHAR(50),

price DECIMAL(10, 2) NOT NULL,

stock INT NOT NULL

);

```

3. 创建订单表。

```sql

CREATE TABLE order (

order_id INT PRIMARY KEY AUTO_INCREMENT,

user_id INT NOT NULL,

book_id INT NOT NULL,

order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

order_status VARCHAR(20) NOT NULL,

FOREIGN KEY (user_id) REFERENCES user(user_id),

FOREIGN KEY (book_id) REFERENCES book(book_id)

);

```

4. 创建购物车表。

```sql

CREATE TABLE cart (

cart_id INT PRIMARY KEY AUTO_INCREMENT,

user_id INT NOT NULL,

book_id INT NOT NULL,

quantity INT NOT NULL,

FOREIGN KEY (user_id) REFERENCES user(user_id),

FOREIGN KEY (book_id) REFERENCES book(book_id)

);

```

五、编写JSP页面

1. 登录页面

```jsp

<%@ page contentType="