用Java和MySQL做一个图书借阅系统
时间: 2023-09-26 10:09:32 浏览: 102
基于Java的图书借阅管理系统
好的,这是一个非常常见的需求。下面是一个简单的Java程序,可以连接到MySQL数据库并实现图书借阅系统的基本功能。这个程序包括以下几个步骤:
1. 连接到MySQL数据库。
2. 创建一个表来存储图书信息。
3. 创建一个表来存储借阅信息。
4. 实现图书查询功能。
5. 实现借书和还书功能。
在这个程序中,我们使用JDBC驱动程序来连接到MySQL数据库。你需要先下载并安装JDBC驱动程序,然后在代码中加载驱动程序。
```java
import java.sql.*;
public class LibrarySystem {
// JDBC驱动程序和数据库URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/library";
// 数据库用户名和密码
static final String USER = "root";
static final String PASS = "root";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 注册JDBC驱动程序
Class.forName(JDBC_DRIVER);
// 打开连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 创建图书表
System.out.println("创建图书表...");
stmt = conn.createStatement();
String sql = "CREATE TABLE books " +
"(id INTEGER not NULL, " +
" name VARCHAR(255), " +
" author VARCHAR(255), " +
" available BOOLEAN, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
// 创建借阅表
System.out.println("创建借阅表...");
sql = "CREATE TABLE borrow " +
"(id INTEGER not NULL, " +
" name VARCHAR(255), " +
" borrow_date DATE, " +
" return_date DATE, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
// 插入图书信息
System.out.println("插入图书信息...");
sql = "INSERT INTO books " +
"VALUES (1, 'Java编程思想', 'Bruce Eckel', true)";
stmt.executeUpdate(sql);
sql = "INSERT INTO books " +
"VALUES (2, 'Java核心技术', 'Cay Horstmann', true)";
stmt.executeUpdate(sql);
sql = "INSERT INTO books " +
"VALUES (3, 'Java并发编程实战', 'Brian Goetz', true)";
stmt.executeUpdate(sql);
// 查询图书信息
System.out.println("查询图书信息...");
sql = "SELECT id, name, author, available FROM books";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String author = rs.getString("author");
boolean available = rs.getBoolean("available");
System.out.println("id: " + id + ", name: " + name + ", author: " + author + ", available: " + available);
}
// 借阅图书
System.out.println("借阅图书...");
sql = "UPDATE books SET available = false WHERE id = 1";
stmt.executeUpdate(sql);
sql = "INSERT INTO borrow " +
"VALUES (1, 'Java编程思想', '2021-05-01', null)";
stmt.executeUpdate(sql);
// 归还图书
System.out.println("归还图书...");
sql = "UPDATE books SET available = true WHERE id = 1";
stmt.executeUpdate(sql);
sql = "UPDATE borrow SET return_date = '2021-05-10' WHERE id = 1";
stmt.executeUpdate(sql);
// 再次查询图书信息
System.out.println("再次查询图书信息...");
rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String author = rs.getString("author");
boolean available = rs.getBoolean("available");
System.out.println("id: " + id + ", name: " + name + ", author: " + author + ", available: " + available);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理JDBC错误
se.printStackTrace();
} catch (Exception e) {
// 处理Class.forName错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
```
这个程序还比较简单,没有实现很多功能,但是可以作为你开始构建一个图书借阅系统的基础。在实际开发中,你需要根据需求进行适当的修改和扩展。
阅读全文