用Oracle写一个图书管理系统
时间: 2024-06-07 21:12:06 浏览: 23
当然可以!下面是一个简单的示例,展示了如何使用Oracle数据库和Java编程语言来创建一个基本的图书管理系统。
首先,我们需要创建一个名为"books"的数据库表,用于存储图书的信息。该表包含以下列:
```sql
CREATE TABLE books (
id NUMBER PRIMARY KEY,
title VARCHAR2(100),
author VARCHAR2(100),
publication_date DATE,
available NUMBER(1)
);
```
接下来,我们可以使用Java编程语言来与Oracle数据库进行交互。首先,我们需要配置Java与Oracle数据库的连接。
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class OracleConnection {
private static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:xe";
private static final String USERNAME = "your_username";
private static final String PASSWORD = "your_password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
}
}
```
接下来,我们可以创建一个Book类来表示图书的信息。
```java
public class Book {
private int id;
private String title;
private String author;
private Date publicationDate;
private boolean available;
// 构造函数、getter和setter方法省略
@Override
public String toString() {
return "Book{" +
"id=" + id +
", title='" + title + '\'' +
", author='" + author + '\'' +
", publicationDate=" + publicationDate +
", available=" + available +
'}';
}
}
```
现在,我们可以编写一些方法来执行与图书管理相关的操作,如添加图书、查找图书等。
```java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class BookManager {
public void addBook(Book book) {
try (Connection connection = OracleConnection.getConnection()) {
String query = "INSERT INTO books (id, title, author, publication_date, available) VALUES (?, ?, ?, ?, ?)";
try (PreparedStatement statement = connection.prepareStatement(query)) {
statement.setInt(1, book.getId());
statement.setString(2, book.getTitle());
statement.setString(3, book.getAuthor());
statement.setDate(4, new java.sql.Date(book.getPublicationDate().getTime()));
statement.setInt(5, book.isAvailable() ? 1 : 0);
statement.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Book> getAllBooks() {
List<Book> books = new ArrayList<>();
try (Connection connection = OracleConnection.getConnection()) {
String query = "SELECT * FROM books";
try (Statement statement = connection.createStatement()) {
try (ResultSet resultSet = statement.executeQuery(query)) {
while (resultSet.next()) {
Book book = new Book();
book.setId(resultSet.getInt("id"));
book.setTitle(resultSet.getString("title"));
book.setAuthor(resultSet.getString("author"));
book.setPublicationDate(resultSet.getDate("publication_date"));
book.setAvailable(resultSet.getInt("available") == 1);
books.add(book);
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return books;
}
// 其他图书管理操作的方法省略
}
```
现在我们可以在主方法中使用这些方法,例如添加图书和获取所有图书。
```java
public class Main {
public static void main(String[] args) {
BookManager bookManager = new BookManager();
// 添加图书
Book book1 = new Book();
book1.setId(1);
book1.setTitle("Java Programming");
book1.setAuthor("John Smith");
book1.setPublicationDate(new Date());
book1.setAvailable(true);
bookManager.addBook(book1);
// 获取所有图书
List<Book> books = bookManager.getAllBooks();
for (Book book : books) {
System.out.println(book);
}
}
}
```
这只是一个简单的示例,你可以根据实际需求进行扩展和优化。希望能帮到你!