Hola, tenia esta duda referente a la conexion de bases de datos con java:
Bueno, es mas bien consulta..., tengo esta clase que manda llamar a otra:
Código:
//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();
Y aqui la clase ConsultarPreguntas, ésta retorna un arreglo con la consultas hechas:
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:
ConsultarPreguntas obj0 = new ConsultarPreguntas("10");
arrPreg0 = obj0.getPreguntas();
ConsultarPreguntas obj1 = new ConsultarPreguntas("11");
arrPreg1 = obj1.getPreguntas();
estoy diciendo que cree otra conexion sin cerrar la primera.
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 :)