以下是一个Java动态SQL代码示例,用于连表查询:

public List<User> getUsersWithRoles() {
    String query = "SELECT u.*, r.role_name FROM users u INNER JOIN roles r ON u.role_id = r.role_id";
    List<User> users = new ArrayList<>();

    try (Connection connection = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
         PreparedStatement statement = connection.prepareStatement(query)) {

        ResultSet resultSet = statement.executeQuery();

        while (resultSet.next()) {
            User user = new User();
            user.setId(resultSet.getInt("id"));
            user.setUsername(resultSet.getString("username"));
            user.setPassword(resultSet.getString("password"));
            user.setEmail(resultSet.getString("email"));
            user.setRole(new Role(resultSet.getInt("role_id"), resultSet.getString("role_name")));
            users.add(user);
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }

    return users;
}

在上面的代码中,我们使用了INNER JOIN语句来连接users表和roles表,并且在查询结果中返回了每个用户的角色名称。我们使用PreparedStatement对象执行查询,并使用ResultSet对象获取查询结果。最后,我们将每个用户和其角色添加到一个List对象中,并返回该对象。

请注意,此代码仅用于示例目的,实际情况可能需要进行一些修改以适应不同的数据库和表结构。


原文地址: https://www.cveoy.top/t/topic/b5V4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录