Pessoal tenho uma aplicação JAVA com um pouco de spring subi essa aplicação na AMAZON "My First Elastic Beanstalk Application" e criei um banco la mesmo "Mysql" tudo esta funcionando, subo a aplicação, efetuo login, faço tudo, mas com frequência ela cai e apresenta: "Could not create connection to database server. Attempted reconnect 3 times. Giving up."
e isso sempre acontece quando tem mais uma pessoa acessando a aplicação. www.head2head.link
eu acho que minha DAO pode vir a estar incorreta, não tenho certeza, vou postar alguns métodos abaixo e quem tiver um tempinho de dar uma olhada e passar um feedback agradeço.
FACTORY
public class ConnectionFactory {
ExceptionHandling capturaException = new ExceptionHandling();
private final String amazonRDS = "jdbc:mysql://*********.cbdhasdqz2vq.sa-east-1.rds.amazonaws.com:3306/nadalspringmvc"; // Servidor
private final String usuarioAmazonRDS = "********"; // Usuário
private final String senhaAmazonRDS = "*****"; // Senha
public Connection getConnection() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
capturaException.ExceptionHandlerController(e);
throw new SQLException(e);
}
return DriverManager.getConnection(amazonRDS, usuarioAmazonRDS, senhaAmazonRDS);
}
}
ExceptionHandling capturaException = new ExceptionHandling();
private Connection connection;
public ModalidadeDAO() {
try {
this.connection = new ConnectionFactory().getConnection();
} catch (SQLException e) {
capturaException.ExceptionHandlerController(e);
throw new RuntimeException(e);
}
}
public void adiciona(ModalidadeDTO modalidade, int sessionID) throws SQLException {
if ("".equals(modalidade.getNomeModalidadeTemp())) {
throw new IllegalArgumentException("Existe algum dado nulo");
}
String sql = "INSERT INTO dt_modalidades (nome_modalidade, id_usuario) VALUES ( ?, " + sessionID + " );";
try {
try (PreparedStatement stmt = connection.prepareStatement(sql)) {
stmt.setString(1, modalidade.getNomeModalidadeTemp());
stmt.execute();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List<ModalidadeDTO> seleciona(int sessionID) {
String sql = "SELECT id_modalidade, nome_modalidade FROM dt_modalidades WHERE id_usuario = " + sessionID + " order by nome_modalidade asc;";
try {
List<ModalidadeDTO> results = new ArrayList<>();
try (PreparedStatement stmt = this.connection.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
results.add(populaConta(rs));
}
}
return results;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}