java数据库图书管理系统
时间: 2023-07-08 13:05:47 浏览: 84
好的,那么您需要一个 Java 编写的图书管理系统,其中包括数据库。以下是一个简单的示例:
首先,您需要创建一个数据库,可以使用 MySQL 或其他数据库软件。在数据库中创建一个名为 `library` 的数据库,其中包含一张名为 `books` 的表。
books表包含以下列:
- id (int): 图书 ID
- title (varchar): 书名
- author (varchar): 作者
- publisher (varchar): 出版社
- publish_date (date): 出版日期
- price (float): 价格
- quantity (int): 数量
接下来,您需要编写 Java 代码来连接数据库并执行操作。以下是一个简单的 Java 类来连接到数据库:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
private static Connection connection;
public static Connection getConnection() {
if (connection == null) {
try {
String url = "jdbc:mysql://localhost:3306/library";
String username = "root";
String password = "password";
connection = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
return connection;
}
}
```
该类中的 `getConnection()` 方法将连接到名为 `library` 的数据库。
接下来,您需要编写一个类来执行 CRUD 操作。以下是一个示例类,它包括添加、更新、删除和查询书籍的方法:
```java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class BookDao {
private Connection connection;
public BookDao() {
connection = DatabaseConnection.getConnection();
}
public void addBook(Book book) {
try {
PreparedStatement preparedStatement = connection.prepareStatement(
"INSERT INTO books(title, author, publisher, publish_date, price, quantity) VALUES (?, ?, ?, ?, ?, ?)");
preparedStatement.setString(1, book.getTitle());
preparedStatement.setString(2, book.getAuthor());
preparedStatement.setString(3, book.getPublisher());
preparedStatement.setDate(4, new java.sql.Date(book.getPublishDate().getTime()));
preparedStatement.setFloat(5, book.getPrice());
preparedStatement.setInt(6, book.getQuantity());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateBook(Book book) {
try {
PreparedStatement preparedStatement = connection.prepareStatement(
"UPDATE books SET title=?, author=?, publisher=?, publish_date=?, price=?, quantity=? WHERE id=?");
preparedStatement.setString(1, book.getTitle());
preparedStatement.setString(2, book.getAuthor());
preparedStatement.setString(3, book.getPublisher());
preparedStatement.setDate(4, new java.sql.Date(book.getPublishDate().getTime()));
preparedStatement.setFloat(5, book.getPrice());
preparedStatement.setInt(6, book.getQuantity());
preparedStatement.setInt(7, book.getId());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void deleteBook(int id) {
try {
PreparedStatement preparedStatement = connection.prepareStatement(
"DELETE FROM books WHERE id=?");
preparedStatement.setInt(1, id);
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Book> getAllBooks() {
List<Book> books = new ArrayList<Book>();
try {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM books");
while (resultSet.next()) {
Book book = new Book();
book.setId(resultSet.getInt("id"));
book.setTitle(resultSet.getString("title"));
book.setAuthor(resultSet.getString("author"));
book.setPublisher(resultSet.getString("publisher"));
book.setPublishDate(resultSet.getDate("publish_date"));
book.setPrice(resultSet.getFloat("price"));
book.setQuantity(resultSet.getInt("quantity"));
books.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
}
return books;
}
public Book getBookById(int id) {
Book book = new Book();
try {
PreparedStatement preparedStatement = connection.prepareStatement(
"SELECT * FROM books WHERE id=?");
preparedStatement.setInt(1, id);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
book.setId(resultSet.getInt("id"));
book.setTitle(resultSet.getString("title"));
book.setAuthor(resultSet.getString("author"));
book.setPublisher(resultSet.getString("publisher"));
book.setPublishDate(resultSet.getDate("publish_date"));
book.setPrice(resultSet.getFloat("price"));
book.setQuantity(resultSet.getInt("quantity"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return book;
}
}
```
该类中的方法将执行添加、更新、删除和查询数据库中的书籍。您可以创建一个主类来测试它:
```java
import java.util.List;
public class Main {
public static void main(String[] args) {
BookDao bookDao = new BookDao();
Book book = new Book();
book.setTitle("Java Programming");
book.setAuthor("John Smith");
book.setPublisher("ABC Publishing");
book.setPublishDate(new java.util.Date());
book.setPrice(19.99f);
book.setQuantity(10);
bookDao.addBook(book);
book.setTitle("Java Programming 2nd Edition");
bookDao.updateBook(book);
bookDao.deleteBook(book.getId());
List<Book> books = bookDao.getAllBooks();
for (Book b : books) {
System.out.println(b);
}
Book bookById = bookDao.getBookById(1);
System.out.println(bookById);
}
}
```
该主类将使用 `BookDao` 类来测试添加、更新、删除和查询数据库中的书籍。您可以将其运行在任何 Java IDE 中,并查看控制台输出结果。
以上是一个简单的 Java 编写的图书管理系统示例,您可以根据自己的需求进行修改和扩展。
阅读全文
相关推荐















