用数据库加JAVA写一个管理用户的接口,接口给到前端

使用MySQL数据库和Java语言编写一个用户管理接口,并将其暴露给前端。

 

首先,我们需要创建一个名为“users”的MySQL表,用于存储用户信息。该表应包含以下列:id(主键,自动递增),username,password,email。

 

接下来,我们可以使用Java编写一个名为“User”的类,该类表示一个用户对象,并包含以下属性:id,username,password,email。

 

```java

public class User {

    private int id;

    private String username;

    private String password;

    private String email;

 

    public User(int id, String username, String password, String email) {

        this.id = id;

        this.username = username;

        this.password = password;

        this.email = email;

    }

 

    // getters and setters

}

```

 

接下来,我们可以编写一个名为“UserDao”的类,该类包含用于与数据库交互的方法。我们将使用JDBC(Java Database Connectivity)库来连接到MySQL数据库。

 

```java

import java.sql.*;

import java.util.ArrayList;

import java.util.List;

 

public class UserDao {

    private Connection connection;

 

    public UserDao() {

        try {

            // 连接到MySQL数据库

            Class.forName("com.mysql.jdbc.Driver");

            String url = "jdbc:mysql://localhost:3306/mydatabase";

            String username = "root";

            String password = "password";

            connection = DriverManager.getConnection(url, username, password);

        } catch (ClassNotFoundException | SQLException e) {

            e.printStackTrace();

        }

    }

 

    // 获取所有用户

    public List<User> getAllUsers() {

        List<User> users = new ArrayList<>();

        try {

            Statement statement = connection.createStatement();

            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

            while (resultSet.next()) {

                int id = resultSet.getInt("id");

                String username = resultSet.getString("username");

                String password = resultSet.getString("password");

                String email = resultSet.getString("email");

                User user = new User(id, username, password, email);

                users.add(user);

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return users;

    }

 

    // 根据ID获取用户

    public User getUserById(int id) {

        User user = null;

        try {

            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users WHERE id = ?");

            preparedStatement.setInt(1, id);

            ResultSet resultSet = preparedStatement.executeQuery();

            if (resultSet.next()) {

                String username = resultSet.getString("username");

                String password = resultSet.getString("password");

                String email = resultSet.getString("email");

                user = new User(id, username, password, email);

            }

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return user;

    }

 

    // 添加用户

    public void addUser(User user) {

        try {

            PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");

            preparedStatement.setString(1, user.getUsername());

            preparedStatement.setString(2, user.getPassword());

            preparedStatement.setString(3, user.getEmail());

            preparedStatement.executeUpdate();

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

 

    // 更新用户

    public void updateUser(User user) {

        try {

            PreparedStatement preparedStatement = connection.prepareStatement("UPDATE users SET username = ?, password = ?, email = ? WHERE id = ?");

            preparedStatement.setString(1, user.getUsername());

            preparedStatement.setString(2, user.getPassword());

            preparedStatement.setString(3, user.getEmail());

            preparedStatement.setInt(4, user.getId());

            preparedStatement.executeUpdate();

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

 

    // 删除用户

    public void deleteUser(int id) {

        try {

            PreparedStatement preparedStatement = connection.prepareStatement("DELETE FROM users WHERE id = ?");

            preparedStatement.setInt(1, id);

            preparedStatement.executeUpdate();

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }

}

```

 

现在,我们可以编写一个名为“UserController”的类,该类包含用于处理HTTP请求的方法,并使用Gson库将Java对象转换为JSON格式。

 

```java

import com.google.gson.Gson;

import spark.Request;

import spark.Response;

import spark.Route;

 

import java.util.List;

 

import static spark.Spark.*;

 

public class UserController {

    private UserDao userDao;

    private Gson gson;

 

    public UserController() {

        userDao = new UserDao();

        gson = new Gson();

 

        // 获取所有用户

        get("/users", new Route() {

            @Override

            public Object handle(Request request, Response response) throws Exception {

                List<User> users = userDao.getAllUsers();

                return gson.toJson(users);

            }

        });

 

        // 根据ID获取用户

        get("/users/:id", new Route() {

            @Override

            public Object handle(Request request, Response response) throws Exception {

                int id = Integer.parseInt(request.params(":id"));

                User user = userDao.getUserById(id);

                if (user != null) {

                    return gson.toJson(user);

                } else {

                    response.status(404);

                    return "User not found";

                }

            }

        });

 

        // 添加用户

        post("/users", new Route() {

            @Override

            public Object handle(Request request, Response response) throws Exception {

                String body = request.body();

                User user = gson.fromJson(body, User.class);

                userDao.addUser(user);

                response.status(201);

                return "User created";

            }

        });

 

        // 更新用户

        put("/users/:id", new Route() {

            @Override

            public Object handle(Request request, Response response) throws Exception {

                int id = Integer.parseInt(request.params(":id"));

                User user = userDao.getUserById(id);

                if (user != null) {

                    String body = request.body();

                    User updatedUser = gson.fromJson(body, User.class);

                    updatedUser.setId(id);

                    userDao.updateUser(updatedUser);

                    return "User updated";

                } else {

                    response.status(404);

                    return "User not found";

                }

            }

        });

 

        // 删除用户

        delete("/users/:id", new Route() {

            @Override

            public Object handle(Request request, Response response) throws Exception {

                int id = Integer.parseInt(request.params(":id"));

                User user = userDao.getUserById(id);

                if (user != null) {

                    userDao.deleteUser(id);

                    return "User deleted";

                } else {

                    response.status(404);

                    return "User not found";

                }

            }

        });

    }

 

    public static void main(String[] args) {

        new UserController();

    }

}

```

 

现在,我们可以运行该应用程序,并使用HTTP请求测试用户管理接口。例如,我们可以使用curl命令从命令行发送HTTP GET请求以获取所有用户:

 

```

curl http://localhost:4567/users

```

 

该请求将返回所有用户的JSON格式列表。我们可以使用类似的方式测试其他HTTP请求。最后,我们可以将该接口暴露给前端,以便用户可以使用Web浏览器或其他HTTP客户端与其进行交互。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值