java课设设备管理系统代码
时间: 2023-07-27 20:07:29 浏览: 46
好的,针对你的问题,我可以为你提供一个简单的设备管理系统的代码示例,供你参考。
这个系统主要包含三个模块:设备管理、设备借还、设备报废。其中,设备管理模块包括设备的增加、删除、修改和查询,设备借还模块包括设备的借出和归还,设备报废模块包括设备的报废操作。具体实现如下:
```java
import java.sql.*;
import java.util.Scanner;
public class DeviceManagementSystem {
private static Connection conn;
public static void main(String[] args) {
try {
// 连接数据库
connectDatabase();
// 显示菜单
showMenu();
// 关闭数据库连接
closeDatabase();
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void connectDatabase() throws SQLException {
// 加载 JDBC 驱动
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/device_db", "root", "123456");
}
private static void closeDatabase() throws SQLException {
if (conn != null) {
conn.close();
}
}
private static void showMenu() throws SQLException {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 设备管理");
System.out.println("2. 设备借还");
System.out.println("3. 设备报废");
System.out.println("0. 退出");
int choice = scanner.nextInt();
if (choice == 0) {
break;
}
switch (choice) {
case 1:
deviceManagement(scanner);
break;
case 2:
deviceBorrowAndReturn(scanner);
break;
case 3:
deviceScrap(scanner);
break;
default:
System.out.println("无效的选择,请重新输入!");
break;
}
}
}
private static void deviceManagement(Scanner scanner) throws SQLException {
while (true) {
System.out.println("请选择设备管理操作:");
System.out.println("1. 设备查询");
System.out.println("2. 设备添加");
System.out.println("3. 设备修改");
System.out.println("4. 设备删除");
System.out.println("0. 返回");
int choice = scanner.nextInt();
if (choice == 0) {
break;
}
switch (choice) {
case 1:
queryDevices();
break;
case 2:
addDevice(scanner);
break;
case 3:
updateDevice(scanner);
break;
case 4:
deleteDevice(scanner);
break;
default:
System.out.println("无效的选择,请重新输入!");
break;
}
}
}
private static void queryDevices() throws SQLException {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM device");
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getString("description") + "\t" + rs.getInt("count"));
}
rs.close();
stmt.close();
}
private static void addDevice(Scanner scanner) throws SQLException {
System.out.println("请输入设备名称:");
String name = scanner.next();
System.out.println("请输入设备描述:");
String description = scanner.next();
System.out.println("请输入设备数量:");
int count = scanner.nextInt();
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO device(name, description, count) VALUES (?, ?, ?)");
pstmt.setString(1, name);
pstmt.setString(2, description);
pstmt.setInt(3, count);
pstmt.executeUpdate();
pstmt.close();
}
private static void updateDevice(Scanner scanner) throws SQLException {
System.out.println("请输入设备 ID:");
int id = scanner.nextInt();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM device WHERE id = " + id);
if (rs.next()) {
System.out.println("请输入设备名称(原名称:" + rs.getString("name") + "):");
String name = scanner.next();
System.out.println("请输入设备描述(原描述:" + rs.getString("description") + "):");
String description = scanner.next();
System.out.println("请输入设备数量(原数量:" + rs.getInt("count") + "):");
int count = scanner.nextInt();
PreparedStatement pstmt = conn.prepareStatement("UPDATE device SET name = ?, description = ?, count = ? WHERE id = ?");
pstmt.setString(1, name);
pstmt.setString(2, description);
pstmt.setInt(3, count);
pstmt.setInt(4, id);
pstmt.executeUpdate();
pstmt.close();
System.out.println("设备修改成功!");
} else {
System.out.println("设备不存在!");
}
rs.close();
stmt.close();
}
private static void deleteDevice(Scanner scanner) throws SQLException {
System.out.println("请输入设备 ID:");
int id = scanner.nextInt();
PreparedStatement pstmt = conn.prepareStatement("DELETE FROM device WHERE id = ?");
pstmt.setInt(1, id);
int n = pstmt.executeUpdate();
pstmt.close();
if (n > 0) {
System.out.println("设备删除成功!");
} else {
System.out.println("设备不存在!");
}
}
private static void deviceBorrowAndReturn(Scanner scanner) throws SQLException {
while (true) {
System.out.println("请选择设备借还操作:");
System.out.println("1. 设备借出");
System.out.println("2. 设备归还");
System.out.println("0. 返回");
int choice = scanner.nextInt();
if (choice == 0) {
break;
}
switch (choice) {
case 1:
borrowDevice(scanner);
break;
case 2:
returnDevice(scanner);
break;
default:
System.out.println("无效的选择,请重新输入!");
break;
}
}
}
private static void borrowDevice(Scanner scanner) throws SQLException {
System.out.println("请输入设备 ID:");
int id = scanner.nextInt();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM device WHERE id = " + id);
if (rs.next()) {
int count = rs.getInt("count");
if (count > 0) {
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO device_borrow(device_id, borrow_time) VALUES (?, NOW())");
pstmt.setInt(1, id);
pstmt.executeUpdate();
pstmt.close();
PreparedStatement pstmt2 = conn.prepareStatement("UPDATE device SET count = count - 1 WHERE id = ?");
pstmt2.setInt(1, id);
pstmt2.executeUpdate();
pstmt2.close();
System.out.println("设备借出成功!");
} else {
System.out.println("设备数量不足,无法借出!");
}
} else {
System.out.println("设备不存在!");
}
rs.close();
stmt.close();
}
private static void returnDevice(Scanner scanner) throws SQLException {
System.out.println("请输入设备 ID:");
int id = scanner.nextInt();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM device_borrow WHERE device_id = " + id + " AND return_time IS NULL");
if (rs.next()) {
PreparedStatement pstmt = conn.prepareStatement("UPDATE device_borrow SET return_time = NOW() WHERE device_id = ?");
pstmt.setInt(1, id);
pstmt.executeUpdate();
pstmt.close();
PreparedStatement pstmt2 = conn.prepareStatement("UPDATE device SET count = count + 1 WHERE id = ?");
pstmt2.setInt(1, id);
pstmt2.executeUpdate();
pstmt2.close();
System.out.println("设备归还成功!");
} else {
System.out.println("设备未借出,无法归还!");
}
rs.close();
stmt.close();
}
private static void deviceScrap(Scanner scanner) throws SQLException {
System.out.println("请输入设备 ID:");
int id = scanner.nextInt();
PreparedStatement pstmt = conn.prepareStatement("DELETE FROM device WHERE id = ?");
pstmt.setInt(1, id);
int n = pstmt.executeUpdate();
pstmt.close();
if (n > 0) {
System.out.println("设备报废成功!");
} else {
System.out.println("设备不存在!");
}
}
}
```
其中,设备管理模块中的 `queryDevices()` 方法用于查询设备信息,`addDevice()` 方法用于添加设备,`updateDevice()` 方法用于修改设备信息,`deleteDevice()` 方法用于删除设备;设备借还模块中的 `borrowDevice()` 方法用于设备借出操作,`returnDevice()` 方法用于设备归还操作;设备报废模块中的 `deviceScrap()` 方法用于设备报废操作。
这个示例代码仅供参考,具体实现可以根据实际需求进行调整和完善。如果有任何问题,欢迎随时向我提问。