Ошибка драйвера при подключении к БД из метода сервлета doGet , из любого другого класса работает
Получаю из БД данные
public class ConnectDB {
static final String DB_URL = "jdbc:postgresql://localhost:5432/mydb";
static final String USER = "user";
static final String PASS = "password";
public ArrayList<User> getUsers(){
ArrayList<User> users = new ArrayList<>();
try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);) {
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
while (resultSet.next()){
String firstName = resultSet.getString("firstName");
String lastName = resultSet.getString("lastName");
User user = new User(firstName,lastName);
users.add(user);
}
} catch (SQLException e){
System.out.println("Error to method select()"+e);
}
return users;
}
}
Метод getUsers() работает , но только не из сервлета. Если вызвать его в сервлете даже через обертку все равно выходит следующая ошибка
No suitable driver found for jdbc:postgresql://localhost:5432/mydb
Ответы (1 шт):
Автор решения: стасевич
→ Ссылка
попробуй добавить данный кусок кода перед connection
// register JDBC driver, optional, since java 1.6
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
либо так
static {
loadDriver();
}
private static void loadDriver() {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}