Я делаю проект самостоятельно, и целью проекта является создание API отдыха в Java и получение данных из базы данных с использованием JDBC.Проблема в том, что когда я устанавливаю соединение и извлекаю данные, используя метод main, все работает нормально, но когда я пытаюсь извлечь данные через запрос get, он возвращает пустой список.Это конечная точка
@Path("/users")
public class UserResource {
UserService userService = new UserService();
@GET
@Path("/all")
@Produces(MediaType.APPLICATION_JSON)
public Response getAllUsers() throws InterruptedException {
List<User> users = userService.getAllUsers();
GenericEntity<List<User>> wrapper = new GenericEntity<List<User>>(users) {
};
return Response.ok(wrapper).build();
}
}
И это класс, который подключается к базе данных с использованием JDBC
public class ConnectionJDBC {
private static String USERNAME = "root";
private static String PASSWORD = "root";
private static String CONSTRING = "jdbc:mysql://localhost:3306/";
private static String DATABASE = "users_db";
static Connection connection;
public ConnectionJDBC() {
}
public static Connection getConnectionToDB() {
try {
String url = CONSTRING + DATABASE;
connection = DriverManager.getConnection(url, USERNAME, PASSWORD);
if (connection != null) {
System.out.println("Connected");
} else {
System.out.println("Connection faild");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Something went wrong before establishing the connection");
}
return connection;
}
public List<User> getUsers() {
connection = getConnectionToDB();
String query = "SELECT * FROM users_db.user_info;";
List<User> userListRetrived = new ArrayList<>();
try {
PreparedStatement statement = connection.prepareStatement(query);
ResultSet dataRetrieved = statement.executeQuery();
while (dataRetrieved.next()) {
User user = new User(dataRetrieved.getInt("id"),
dataRetrieved.getString(2),
dataRetrieved.getString(3));
userListRetrived.add(user);
return userListRetrived;
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("Something went wrong when retriving the data");
}
return userListRetrived;
}
}
Класс UserServiceздесь
public class UserService {
private ConnectionJDBC connectionJDBC = new ConnectionJDBC();
public UserService() {
}
public List<User> getAllUsers() {
ConnectionJDBC connectionJDBC = new ConnectionJDBC();
List<User> usersList = connectionJDBC.getUsers();
return usersList;
}
}
Пользовательский класс - это обычный Java-бин.Такое ощущение, что метод getUsers игнорирует извлечение данных из базы данных и вместо этого возвращает пустой экземпляр списка.Я использую майку и разворачиваю проект на Glassfish.Любые подсказки о том, как я могу это исправить или объяснение этой ситуации?
Большое спасибо заранее!