Pessoal sou novo aqui no fórum e tenho uma duvida a um tempo, este erro tem aparecido constantemente em meu site.(JAVA WEB)
Erro:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User ‘gabriel’ has exceeded the ‘max_user_connections’ resource (current value: 25)
Eu já fis pesquisas sobre ele mais não obtive resultado. Alguém pode me ajudar.
Meu site esta hospedado na uolhosts, segue a baixo o código da minha conexão com banco de dados
package modelo;
import java.sql.Connection;
import java.sql.DriverManager;
public class DataBaseDAO {
Connection conn;
public void conectar() throws Exception {
String url = "jdbc:mysql://protecline.mysql.uhserver.com";
String user = "";
String pass = "";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pass);
}
public void desconectar() throws Exception {
if (!conn.isClosed()) {
conn.close();
}
}
}
Você deve estar instanciando seu DataBaseDAO
em vários lugares e chamando o método conectar()
.
Do jeito que ele foi modelado, cada instância tem uma conexão.
1 curtida
Entendi! no caso cada vez que eu chamo o método e uma conexão. Teria alguma forma de aumentar ou fazer meus métodos em uma unica conexão?
Meu código
public class MenuDAO extends DataBaseDAO {
public void inserir(Menu m) throws Exception {
String sql = "INSERT INTO menu (titulo,link) VALUES(?,?)";
this.conectar();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, m.getTitulo());
pstm.setString(2, m.getLink());
pstm.execute();
this.desconectar();
}
public ArrayList<Menu> listar() throws Exception {
ArrayList<Menu> lista = new ArrayList<Menu>();
String sql = "SELECT * FROM menu";
this.conectar();
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
Menu m = new Menu();
m.setId(rs.getInt("id"));
m.setTitulo(rs.getString("titulo"));
m.setLink(rs.getString("link"));
lista.add(m);
}
this.desconectar();
return lista;
}
public void excluir(int id) throws Exception {
String sql = "DELETE FROM menu WHERE id=?";
this.conectar();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, id);
pstm.execute();
this.desconectar();
}
public Menu carregarPorId(int id) throws Exception {
Menu m = new Menu();
String sql = "SELECT * FROM menu WHERE id=?";
this.conectar();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, id);
ResultSet rs = pstm.executeQuery();
if (rs.next()) {
m.setId(rs.getInt("id"));
m.setTitulo(rs.getString("titulo"));
m.setLink(rs.getString("link"));
}
this.desconectar();
return m;
}
public void alterar(Menu m) throws Exception {
String sql = "UPDATE menu SET titulo=?,link=? WHERE id=?";
this.conectar();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setString(1, m.getTitulo());
pstm.setString(2, m.getLink());
pstm.setInt(3, m.getId());
pstm.execute();
this.desconectar();
}
}
Tenho muitas classes como essa em que chamo o método varias vezes.