Java数据库设计说明书

1. 引言

本文档旨在设计一个简单的图书管理系统数据库,以满足用户对书籍信息的管理需求。系统将允许用户添加、查询、编辑和删除书籍信息,提供一个高效的管理工具。

2. 需求分析

用户需求如下:

  • 存储书籍信息,包括书名、作者、出版日期、ISBN、价格等。
  • 用户能够对书籍信息进行增、删、改、查操作。
  • 系统需支持基本的查询功能,例如根据标题或作者查询书籍。

3. 概念模型

以下是本系统的实体关系图,其中涉及一个主要的实体——书籍(Book)。

erDiagram
    BOOK {
        int id PK "书籍ID"
        string title "书名"
        string author "作者"
        date publishedDate "出版日期"
        string isbn "ISBN"
        decimal price "价格"
    }

4. 逻辑模型

基于需求分析,我们将创建一个Book表来存储所有书籍的信息。表的定义如下:

字段名 数据类型 说明
id INT 主键,自增
title VARCHAR(255) 书名
author VARCHAR(255) 作者
publishedDate DATE 出版日期
isbn VARCHAR(20) ISBN号码
price DECIMAL(10,2) 价格

5. 物理模型

5.1 数据库创建

创建数据库和Book表的SQL语句如下:

CREATE DATABASE BookStore;

USE BookStore;

CREATE TABLE Book (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    author VARCHAR(255) NOT NULL,
    publishedDate DATE,
    isbn VARCHAR(20) UNIQUE,
    price DECIMAL(10, 2) NOT NULL
);

5.2 Java代码示例

使用下列Java代码实现对Book表的基本CRUD操作:

5.2.1 数据库连接
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection {
    public static Connection connect() {
        String url = "jdbc:mysql://localhost:3306/BookStore";
        String user = "root";
        String password = "your_password";
        
        Connection conn = null;

        try {
            conn = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return conn;
    }
}
5.2.2 新增书籍
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BookDAO {

    public void addBook(String title, String author, String publishedDate, String isbn, double price) {
        String sql = "INSERT INTO Book (title, author, publishedDate, isbn, price) VALUES (?, ?, ?, ?, ?)";
        
        try (Connection conn = DatabaseConnection.connect();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {
             
            pstmt.setString(1, title);
            pstmt.setString(2, author);
            pstmt.setDate(3, java.sql.Date.valueOf(publishedDate));
            pstmt.setString(4, isbn);
            pstmt.setDouble(5, price);
            
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

6. 总结

本文档描述了一款简单的图书管理系统的数据库设计方案。通过提供实体关系图、数据表结构及Java代码示例,帮助开发者理解如何有效地管理书籍信息。后续可根据用户反馈不断迭代和优化数据库设计,以提升系统的性能和用户体验。