简易版用户管理系统,本系统使用技术Java、mysql数据库,采用命令行交互方式,实现用户信息的增、删、查、改功能。
时间: 2023-10-20 12:18:11 浏览: 81
好的,下面是一个简单的用户管理系统的Java代码示例,它使用了MySQL数据库和命令行交互方式,实现了用户信息的增、删、查、改功能。在运行代码之前,需要安装MySQL数据库和相关的JDBC驱动程序。
```java
import java.sql.*;
public class UserManagementSystem {
// JDBC URL、用户名和密码
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/user_database";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static void main(String[] args) {
try {
// 注册JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 打开数据库连接
Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
// 创建Statement对象
Statement stmt = conn.createStatement();
// 创建用户表
String createTableSql = "CREATE TABLE IF NOT EXISTS user (" +
"id INT AUTO_INCREMENT PRIMARY KEY," +
"name VARCHAR(255) NOT NULL," +
"age INT NOT NULL," +
"email VARCHAR(255) NOT NULL)";
stmt.executeUpdate(createTableSql);
// 显示用户操作菜单
displayMenu();
// 处理用户操作
while (true) {
System.out.print("请输入操作编号:");
int option = Integer.parseInt(System.console().readLine());
switch (option) {
case 1:
addUser(conn);
break;
case 2:
deleteUser(conn);
break;
case 3:
updateUser(conn);
break;
case 4:
getUser(conn);
break;
case 5:
listUsers(conn);
break;
case 6:
System.out.println("程序已退出!");
stmt.close();
conn.close();
System.exit(0);
default:
System.out.println("输入有误,请重新输入!");
}
displayMenu();
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 显示用户操作菜单
private static void displayMenu() {
System.out.println("\n欢迎使用用户管理系统,请输入操作编号:");
System.out.println("1. 添加用户");
System.out.println("2. 删除用户");
System.out.println("3. 修改用户");
System.out.println("4. 查询用户");
System.out.println("5. 列出所有用户");
System.out.println("6. 退出程序");
}
// 添加用户
private static void addUser(Connection conn) throws SQLException {
System.out.print("请输入用户名:");
String name = System.console().readLine();
System.out.print("请输入年龄:");
int age = Integer.parseInt(System.console().readLine());
System.out.print("请输入邮箱:");
String email = System.console().readLine();
String addSql = "INSERT INTO user (name, age, email) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(addSql);
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setString(3, email);
pstmt.executeUpdate();
System.out.println("用户添加成功!");
}
// 删除用户
private static void deleteUser(Connection conn) throws SQLException {
System.out.print("请输入要删除的用户ID:");
int id = Integer.parseInt(System.console().readLine());
String deleteSql = "DELETE FROM user WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(deleteSql);
pstmt.setInt(1, id);
int rows = pstmt.executeUpdate();
if (rows == 0) {
System.out.println("找不到要删除的用户!");
} else {
System.out.println("用户删除成功!");
}
}
// 修改用户
private static void updateUser(Connection conn) throws SQLException {
System.out.print("请输入要修改的用户ID:");
int id = Integer.parseInt(System.console().readLine());
String selectSql = "SELECT * FROM user WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(selectSql);
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
System.out.println("当前用户信息为:");
System.out.println("ID:" + rs.getInt("id"));
System.out.println("用户名:" + rs.getString("name"));
System.out.println("年龄:" + rs.getInt("age"));
System.out.println("邮箱:" + rs.getString("email"));
System.out.println("请输入新的用户名(直接回车表示不修改):");
String name = System.console().readLine();
System.out.println("请输入新的年龄(直接回车表示不修改):");
String ageStr = System.console().readLine();
System.out.println("请输入新的邮箱(直接回车表示不修改):");
String email = System.console().readLine();
String updateSql = "UPDATE user SET name = ?, age = ?, email = ? WHERE id = ?";
pstmt = conn.prepareStatement(updateSql);
pstmt.setString(1, name.isEmpty() ? rs.getString("name") : name);
pstmt.setInt(2, ageStr.isEmpty() ? rs.getInt("age") : Integer.parseInt(ageStr));
pstmt.setString(3, email.isEmpty() ? rs.getString("email") : email);
pstmt.setInt(4, id);
pstmt.executeUpdate();
System.out.println("用户信息修改成功!");
} else {
System.out.println("找不到要修改的用户!");
}
}
// 查询用户
private static void getUser(Connection conn) throws SQLException {
System.out.print("请输入要查询的用户ID:");
int id = Integer.parseInt(System.console().readLine());
String selectSql = "SELECT * FROM user WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(selectSql);
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
System.out.println("当前用户信息为:");
System.out.println("ID:" + rs.getInt("id"));
System.out.println("用户名:" + rs.getString("name"));
System.out.println("年龄:" + rs.getInt("age"));
System.out.println("邮箱:" + rs.getString("email"));
} else {
System.out.println("找不到要查询的用户!");
}
}
// 列出所有用户
private static void listUsers(Connection conn) throws SQLException {
String selectSql = "SELECT * FROM user";
PreparedStatement pstmt = conn.prepareStatement(selectSql);
ResultSet rs = pstmt.executeQuery();
System.out.println("所有用户信息如下:");
while (rs.next()) {
System.out.println("ID:" + rs.getInt("id"));
System.out.println("用户名:" + rs.getString("name"));
System.out.println("年龄:" + rs.getInt("age"));
System.out.println("邮箱:" + rs.getString("email"));
System.out.println();
}
}
}
```
这个系统主要分为以下几个部分:
1. 数据库连接:在程序启动时,先注册JDBC驱动程序,然后打开数据库连接。
2. 用户操作菜单:显示用户操作菜单,并提示用户输入操作编号。
3. 用户操作处理:根据用户输入的操作编号,执行相应的用户操作。
4. 用户信息增删改查:具体实现用户信息的增、删、改、查操作。
5. 程序退出:用户输入6,退出程序,并关闭数据库连接。
你可以把这个代码复制到一个Java文件中,然后在命令行中编译并运行它。运行程序后,按照提示进行操作即可。