RagingBull
04-08-2008, 15:05
ciao a tutti!
ho creato la seguente classe che, a quanto pare non vuole fare il suo dovere: riempire un array bidimensionale con i dati prelevati da una query MySQL.
L'errore che ottengo è il seguente:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Calendario.main(Calendario.java:59)
Eccovi il codice (lasciate perdere il nome della classe....la uso solo per fare dei test):
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
public class Calendario
{
private String driver = "com.mysql.jdbc.Driver";
private Connection connessione;
public Statement state;
private ResultSet result;
public Connection connessione(){
try{
Class.forName(driver);
}catch(ClassNotFoundException e){
System.out.println("Driver non caricato in memoria!!");
System.exit(1);
}
try{
connessione = DriverManager.getConnection("jdbc:mysql://localhost/schedule"+"?user=root&password=pass");
}catch(SQLException e){System.out.println("Errore accesso"); System.exit(2);}
return connessione;
}
public static void main(String args[])
{
int i=0;
int j=0;
Object tabella[][] = new Object [i][j];
StringBuffer qry = new StringBuffer();
qry.append("SELECT * FROM aule_lab;");
String query = new String(qry.toString());
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData md =null;
int columns = new Integer(0);
Vector row=new Vector(columns);
Vector data = new Vector();
Connection c = null;
try
{
Calendario cal = new Calendario();
c=cal.connessione();
stmt = c.createStatement();
rs = stmt.executeQuery(query);
md = rs.getMetaData();
columns = md.getColumnCount();
while(rs.next())
{
for (j = 0; j <= columns; j++)
{
System.out.println("sono nel for: ["+i+"] ["+j+"]"); // stampa di prova
tabella[i][j] = rs.getObject(j); // NON RIESCO AD ASSEGNARE UN VALORE ALL'ARRAY
}
i++;
}
for(i=0; i<=3; i++)
{
for(j=0; j<=5; j++)
{
System.out.println("prova->"+tabella[i][j]); //stampa di prova array pieno
}
}
}
catch(SQLException e)
{
System.out.println("errore table "+e);
}
}
}
L'errore sembra esser alla riga segnata in rosso. E' da questa mattina che sto cercando di capire. Non ne riesco a venire a capo. :muro:
Grazie anticipatamente a tutti!
ho creato la seguente classe che, a quanto pare non vuole fare il suo dovere: riempire un array bidimensionale con i dati prelevati da una query MySQL.
L'errore che ottengo è il seguente:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Calendario.main(Calendario.java:59)
Eccovi il codice (lasciate perdere il nome della classe....la uso solo per fare dei test):
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
public class Calendario
{
private String driver = "com.mysql.jdbc.Driver";
private Connection connessione;
public Statement state;
private ResultSet result;
public Connection connessione(){
try{
Class.forName(driver);
}catch(ClassNotFoundException e){
System.out.println("Driver non caricato in memoria!!");
System.exit(1);
}
try{
connessione = DriverManager.getConnection("jdbc:mysql://localhost/schedule"+"?user=root&password=pass");
}catch(SQLException e){System.out.println("Errore accesso"); System.exit(2);}
return connessione;
}
public static void main(String args[])
{
int i=0;
int j=0;
Object tabella[][] = new Object [i][j];
StringBuffer qry = new StringBuffer();
qry.append("SELECT * FROM aule_lab;");
String query = new String(qry.toString());
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData md =null;
int columns = new Integer(0);
Vector row=new Vector(columns);
Vector data = new Vector();
Connection c = null;
try
{
Calendario cal = new Calendario();
c=cal.connessione();
stmt = c.createStatement();
rs = stmt.executeQuery(query);
md = rs.getMetaData();
columns = md.getColumnCount();
while(rs.next())
{
for (j = 0; j <= columns; j++)
{
System.out.println("sono nel for: ["+i+"] ["+j+"]"); // stampa di prova
tabella[i][j] = rs.getObject(j); // NON RIESCO AD ASSEGNARE UN VALORE ALL'ARRAY
}
i++;
}
for(i=0; i<=3; i++)
{
for(j=0; j<=5; j++)
{
System.out.println("prova->"+tabella[i][j]); //stampa di prova array pieno
}
}
}
catch(SQLException e)
{
System.out.println("errore table "+e);
}
}
}
L'errore sembra esser alla riga segnata in rosso. E' da questa mattina che sto cercando di capire. Non ne riesco a venire a capo. :muro:
Grazie anticipatamente a tutti!