Erro:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User 'gabrielms' has exceeded the 'max_user_connections' resource (current value: 25)

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.