View Full Version : [Java] Domandina suoi form e sul ResultSet di JDBC
supersasch2006
19-10-2007, 13:14
Allora premetto che non è da molto ke programmo in Java e sto imparando. Ho scaricato NetBeans come tool di sviluppo...ora io ho la classe Main che fa partire il mio programma ...
da li apro il mio primo form
jfLogin mm = new jfLogin();
mm.setVisible(true);
ok e tutto fila liscia ... ora questo form ha il controllo di accedere al db controllado il nome utente e la password.
Se il controllo va a buon fine la finestra si dovrebbe chiudere ed aprire il menù principale ... ora però il menù principale me lo apre senza problemi ... ma non mi chiude il form del login
in VB avevo la classe me che indicava il form aperto e lanciavo
me.close()
ma i Java come si fa ??
Altra cosa nessuno di voi sa come si contano le righe di un ResultSet ??
tipo
String queryName = SELECT * FROM Studenti WHERE nome = Marco;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(queryName);
come faccio a vedere quante righe ha rs ??
grazie mille Sascha :D
yorkeiser
19-10-2007, 13:20
Altra cosa nessuno di voi sa come si contano le righe di un ResultSet ??
tipo
String queryName = “SELECT * FROM Studenti WHERE nome = ‘Marco’”;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(queryName);
come faccio a vedere quante righe ha rs ??
grazie mille Sascha :D
Non ho mai incontrato una funzione specifica per contare le righe di un resultset, non so se possa esistere sinceramente. Comunque puoi aggirare il problema in 2 modi:
O fai una query di count (select COUNT(*) FROM ....) e fai un rs.getInt(),
oppure quando scrolli il resultset incrementi un contatore
int numero_righe=0;
while rs.next() numero_righe ++ ;
supersasch2006
19-10-2007, 14:00
ok grazie mille per la risposta... tante volte mica mi sai aiutare sul discorso dei form ... :D
supersasch2006
19-10-2007, 14:11
leggendo un po' a zonzo per internet ho trovato un interessante soluzione al problema ... posto il codice
public static ResultSet query = null;
public static int contaRighe() {
try {
int risu=0;
query.last();
risu = query.getRow();
query.first();
return risu;
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile completare la query: ");
se.printStackTrace();
}
}
return 0;
}
naturalmente il ResultSet deve essere Scrollable ResultSet
:D
idea presa da qui http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/rs/CountResult.html
yorkeiser
19-10-2007, 14:17
Certo: non ho mai incontrato un problema simile per cui ignoravo che esistesse anche un rs.last(), ma direi che questa è la soluzione migliore quando non si ha il bisogno di scorrere tutto il recordset.
supersasch2006
21-10-2007, 13:44
Tanto che ci sono posto la classe che mi sono fatto per PostgreSQL, non so se a qualcuno può servire :D
package papinicomp_java.funzioni;
import javax.swing.JOptionPane;
import java.sql.*;
/**
*
* @author Sascha
*/
public class jcPostgreSQL {
//variabili che servono per connettersi al DB
public static String HOST = "10.3.0.1";
public static String USER = "root";
public static String PASS = "-";
public static String DB = "papinicomputer";
public static boolean DEBUG = true;
//variabile che tiene la connessione
public static Connection myDb = null;
public static ResultSet query = null;
/** Creates a new instance of jcPostgreSQL */
public jcPostgreSQL() {
}
public static boolean connetti() {
try {
myDb = DriverManager.getConnection("jdbc:postgresql://10.3.0.1/papinicomputer", USER, PASS);
if (DEBUG) {
if (myDb != null) {
System.out.println("Connessione con il server " + HOST + " riuscita !!");
return true;
} else {
System.out.println("Connessione con il server " + HOST + " NON riuscita !!");
return false;
}
}
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile connettersi: ");
se.printStackTrace();
return false;
}
}
return false;
}
public static void chiudi() {
try {
myDb.close();
System.out.println("Connessione con il DB chiusa ");
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile connettersi: ");
se.printStackTrace();
}
}
}
public static void queryDB(String q) {
try {
if (DEBUG) {
System.out.println(q);
}
Statement s = myDb.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
query = s.executeQuery(q);
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile completare la query: ");
se.printStackTrace();
}
}
}
public static int contaRighe() {
try {
int risu=0;
query.last();
risu = query.getRow();
query.first();
return risu;
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile completare la query: ");
se.printStackTrace();
}
}
return 0;
}
public static int contaRigheColonne() {
try {
java.sql.ResultSetMetaData rsmd = query.getMetaData();
return rsmd.getColumnCount();
} catch (SQLException se) {
if (DEBUG) {
System.out.println("Impossibile completare la query: ");
se.printStackTrace();
}
}
return 0;
}
}
banryu79
05-11-2007, 16:55
...
Se il controllo va a buon fine la finestra si dovrebbe chiudere ed aprire il menù principale ... ora però il menù principale me lo apre senza problemi ... ma non mi chiude il form del login
in VB avevo la classe me che indicava il form aperto e lanciavo
me.close()
ma i Java come si fa ??
Della serie: meglio tardi che mai! :D
me.setVisible(false);
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.