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

    [java DB] problema col ResultSet

    qualcuno mi puo aiutare ho un piccolo problema con le query.

    da quello ke ho capito mi chiude il resultset in automatico senza ke finisce la quesry... il codice e :

    codice:
    public List<Tag> visualizzaTag() {
    		List<Tag> list=new ArrayList<Tag>();
    		String query="SELECT * FROM tag WHERE file_associato='"+this.getIn()+"'";
    		try {
    			con=new ConnectDB();
    			ResultSet v= con.eseguiQuery(query);
    riga 81:		while (v.next()){
    				Tag t= new Tag(v.getInt(1), null, v.getDate(3));
    				String query2="SELECT * FROM persona WHERE id='"+v.getInt(2)+"'";
    				Persona p=cerca(query2);
    				t.setPersona(p);
    				list.add(t);
    			}
    			v.close();
    			con.close();
    		}catch (Exception e){
    			e.printStackTrace();
    		}
    		return list;
    	}
    	public Persona cerca(String query2){
    		Persona p=null;
    		try {
    		ResultSet v2= con.eseguiQuery(query2);
    		
    		
    		while (v2.next()){
    			p=new Persona(v2.getInt(1),v2.getString(2), v2.getString(3), v2.getString(4), v2.getString(5), v2.getString(6), v2.getDate(7));
    		}
    		
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return p;
    	}
    stampa solo la prima riga della tabella Tag del DB... ma nle DB sono presente ben 10 tuple...
    metto qua l'errore pure:
    codice:
    java.sql.SQLException: Operation not allowed after ResultSet closed
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
    	at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:794)
    	at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7145)
    	at photobook.Img.visualizzaTag(Img.java:82)
    	at grafica.ImgListener.mostraTag(ImgListener.java:943)
    	at grafica.ImgListener.actionPerformed(ImgListener.java:65)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:829)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:873)
    	at java.awt.Component.processMouseEvent(Component.java:6108)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    	at java.awt.Component.processEvent(Component.java:5873)
    	at java.awt.Container.processEvent(Container.java:2105)
    	at java.awt.Component.dispatchEventImpl(Component.java:4469)
    	at java.awt.Container.dispatchEventImpl(Container.java:2163)
    	at java.awt.Component.dispatchEvent(Component.java:4295)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
    	at java.awt.Container.dispatchEventImpl(Container.java:2149)
    	at java.awt.Window.dispatchEventImpl(Window.java:2478)
    	at java.awt.Component.dispatchEvent(Component.java:4295)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
    l'errore sta nella riga 81 ke ho segnato da quello che ho capito... quando faccio la seconda query mi chiude in automatico il primo resultSet, Qualcuno sa come risolvere questo problema??

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java DB] problema col ResultSet

    Originariamente inviato da orphenix
    quando faccio la seconda query mi chiude in automatico il primo resultSet, Qualcuno sa come risolvere questo problema??
    Come è fatta ConnectDB e cosa fa eseguiQuery?? Ovviamente non possiamo saperlo (io o altri) da quanto hai postato. Ma viene ri-utilizzato lo stesso identico oggetto Statement?? Perché allora se è così, l'avevo spiegato qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    hai azzeccato proprio bene uso lo stesso Statement...
    cmq ora leggo quella discussione e ti dico se riesco

  4. #4
    ok ho risolto grazie mille..... poiche quella metodo l'avevo creato solo per prova nn ci avevo messo la nuova istanza della connessione al db .... pensavo ke doveva funzionare lo stesso perch ela connessione era aperta.....

    ora ho messo la variabile e funziona perfettamente ... cmq ho capito pure il mio errore.. che sta Stament per questo quando avevo un solo metodo ed al posto della chimanta del nuovo metodo un altra query nn mi funzionava

    grazie come al solito.... ti dovremmo pagare ogni volta xd

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.