Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [java] "Too many connections"

    ciao raga

    stò creando un applicazione java che si connette a un server mysql.
    il problema è che la mia applicazione ogni volta che interroga il database crea una connessione. Arrivati alla soglia di 100 connessioni il programma si blocca creando questa eccezzione:

    java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections"

    come posso ovviare a questo problema?
    chi può aiutarmi?

    ora posto anche il codice della connessione.

    ciao

  2. #2
    Questa è la classe per la connessione MyConnection


    codice:
    package nuceria;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    import javax.swing.JOptionPane;
    // classe che crea la connessione
    public class MyConnection {
    	static Connection con = null;
    	public MyConnection(){
    		try{
    				Class.forName("com.mysql.jdbc.Driver").newInstance();
    				con =DriverManager.getConnection("jdbc:mysql://localhost:3306/nuceria","root","");
    			}catch(Exception e){JOptionPane.showMessageDialog(null,"Errore Connessione!! "+e,"WARNING !!!",0);
    			System.out.println(e);
    			}
    	}
    	public static Connection getConnection(){
    		return con;
    	}		
    }


    Questo invece è il codice che uso per creare la connessione quando mi serve:


    codice:
    new MyConnection();
    Connection con=MyConnection.getConnection();
    Statement st = con.createStatement();
    ResultSet rs =st.executeQuery(query);

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ma chiudile le connessioni quando hai finito
    di norma
    Connection conn = ...
    try {
    Statement st = ...
    } finally {
    conn.close();
    }

  4. #4
    Già provato , ma non va!

    ora posto la classe che utilizza la classe MyConnection() :

    codice:
    public class PannelloTabellaMacchina extends JPanel {
    	public PannelloTabellaMacchina(){
    		try {
    //			 richiesta connessione al db
    			new MyConnection();
    			conn=MyConnection.getConnection();
    			stat = conn.createStatement();
    //			se non ci sono dati chiude il resultset
    			if(rs != null){rs.close();}
    //			 stringa della query per la visualizzazione delle macchine
    			String query = "select * from macchina";
    //			esegue la query con le caratteristiche della tabbellascrollabile
    			rs = stat.executeQuery(query);
    //			crea la tabella con il modello tablemodel
    			TableModel model= new TableModel(rs);
    			table = new JTable(model);
    			// abilita la selezione di una linea
    			table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    //			aggiunge la tabella allo scrollpane
    			scrollpane = new JScrollPane(table);
    // 			setta il layout
    			this.setLayout(new BorderLayout());
    //			aggiunge lo scroll pane alla tabella
    			this.add(scrollpane);
    		}catch(Exception e){e.printStackTrace();}
    	}
    	//metodo che ritorna la tabella
    	public JTable getTable(){
    		return table;
    	}
    	//metodo che prende l'elemento selezionato
    	public String getSelected(){
    		try{
    		int par[]=table.getSelectedRows();
    		str=(String) table.getValueAt(par[0], 0);
    		}catch(Exception e){JOptionPane.showMessageDialog(null, "Selezionare una macchina !!");}
    		return str;
    	}
    	String str;
    	private JTable table;
    	private JScrollPane scrollpane;
    	private ResultSet rs;
    	private Statement stat;
    	private Connection conn;
    	
    }

    è un pannello che visualizza una tabella di dati provenienti dal DB.
    Questo pannello è attivato da un bottone in un altropannello.
    Se chiudo la connessione (come mi ha indicato tu e anche in altri modi) la tabella viene visualizzata senza dati ma solo con i nomi delle colonne.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.