Bueno, es mas bien consulta..., tengo esta clase que manda llamar a otra:
Código:
Y aqui la clase ConsultarPreguntas, ésta retorna un arreglo con la consultas hechas://arrPreg"x" son arreglos String, que recibiran arreglos String provenientes de la clase a la que llaman. Como argumento a la clase ConsultarPreguntas le manda un dato para la base de datos... ConsultarPreguntas obj0 = new ConsultarPreguntas("10"); arrPreg0 = obj0.getPreguntas(); ConsultarPreguntas obj1 = new ConsultarPreguntas("11"); arrPreg1 = obj1.getPreguntas(); ConsultarPreguntas obj2 = new ConsultarPreguntas("12"); arrPreg2 = obj2.getPreguntas(); ConsultarPreguntas obj3 = new ConsultarPreguntas("13"); arrPreg3 = obj3.getPreguntas(); ConsultarPreguntas obj4 = new ConsultarPreguntas("14"); arrPreg4 = obj4.getPreguntas(); ConsultarPreguntas obj5 = new ConsultarPreguntas("15"); arrPreg5 = obj5.getPreguntas(); ConsultarPreguntas obj6 = new ConsultarPreguntas("16"); arrPreg6 = obj6.getPreguntas();
Código:
import java.sql.*; public class ConsultarPreguntas { private String dpto; static final String URL_BD = "jdbc:mysql://127.0.0.1:3306/tec"; static final String Controlador = "com.mysql.jdbc.Driver"; Connection conexion; Statement sentenciaSQL; ResultSet conjuntoResultados; String ar[]; int numeroDeColumnas; int v; public ConsultarPreguntas(String dpto) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException { this.dpto=dpto; try { Class.forName(Controlador).newInstance(); conexion = DriverManager.getConnection(URL_BD,"root","david2"); sentenciaSQL = conexion.createStatement(); conjuntoResultados = sentenciaSQL.executeQuery("SELECT pregunta FROM pregunta WHERE id_dpto = " + dpto); while(conjuntoResultados.next()) { v+=1; } ar = new String[v]; int x=0; conjuntoResultados.beforeFirst(); while(conjuntoResultados.next()) { ar[x]=conjuntoResultados.getString("pregunta"); x++; } } catch(ClassNotFoundException e ) { JOptionPane.showMessageDialog(null,"HolaClass"); } catch(SQLException e) { System.err.println("Excepcion: " + e.getMessage()); } } public String[] getPreguntas() { return ar; } public int getLargoArreglo() { return ar.length; } }
Mi preguntas serian..., puede existir mas de una conexion al mismo tiempo a la base de datos, porque al hacer esto:
Código:
estoy diciendo que cree otra conexion sin cerrar la primera. ConsultarPreguntas obj0 = new ConsultarPreguntas("10"); arrPreg0 = obj0.getPreguntas(); ConsultarPreguntas obj1 = new ConsultarPreguntas("11"); arrPreg1 = obj1.getPreguntas();
Tambien no se si esto aplique a los objetos ResultSet.
- Otra pregunta que tengo es si un mismo objeto ResultSet puede "sobreescribirse", es decir, ejecutar un "executeQuery" una vez, y luego ejecutarlo otra vez:
Código:
Statement aw = conexion.createStatement(); ResultSet at = aw.executeQuery("SELECT * FROM pregunta"); ,y enseguida at = aw.executeQuery("SELECT * FROM departamento");
PD: Espero pueda ayudarme con estas dudas, que estoy atorado con una aplicacion que no ahce lo que quiero, y esta relacionado con estas cosas.
Gracias por leer :)