Foros del Web » Programación para mayores de 30 ;) » Java »

como almacenar el resulSet en un vector

Estas en el tema de como almacenar el resulSet en un vector en el foro de Java en Foros del Web. Hola, a todos... que tal como estan?.. por aqui molestandolos denuevo... Tengo unas dudas... 1. quisiera saber como se almacenaria el resulSet obtenido de una ...
  #1 (permalink)  
Antiguo 14/10/2004, 09:33
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 7 meses
Puntos: 0
como almacenar el resulSet en un vector

Hola, a todos... que tal como estan?..
por aqui molestandolos denuevo...

Tengo unas dudas...
1. quisiera saber como se almacenaria el resulSet obtenido de una consulta a un Vector?
2. Como puedo recorrer el Vector para ver su contenido?
3. Deacuerdo al codigo que pondo abajo, obtengo 4 numeros aleatorios los cuales me sirven para mandar apantalla los metados (que representan para el usuario preguntas) que corresponda las posisciones que me arroja el arreglo de numeros aleatorios. Pero, ¿Como puedo hacer para que las respuestas que me de el usuario, las pueda comparar con las respuestas que estarian almacenadas en el vector? ya que no quiero hacer acceso ala base de datos, por eso quiero almacenar en vector el resulset.
4. al usuario le daria 3 oprtunidades, en caso de que me falle una de las 4 preguntas, entonces que el sistema le mande un mensaje de "acceso denegado"..

CODIGO...
import java.io.*;
import java.net.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class preguntas extends HttpServlet
{
static final String connect_string = "jdbc:postgresql://localhost/votos2";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String control2= request.getParameter("valor1");
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
Connection conn=null;
Statement st = null;
try
{
// Carga del driver JDBC
Class.forName("org.postgresql.Driver");
// Conexiòn con la base de datos
if (conn != null)
{
conn.close();
}
conn = DriverManager.getConnection (connect_string,"postgres","");
conn.setAutoCommit(true);
}catch (Exception e)
{
out.println("<wml>");
out.println("<card id=\"card16\">");
out.println("<p>");
out.println("<br>error"+e);
out.println("</br>");
out.println("</p>");
out.println("</card>");
out.println("<wml>");
}
try
{
Statement stmt = conn.createStatement();
ResultSet conjuntoResultados=stmt.executeQuery("SELECT * FROM preguntas where no_ctrl=\'"+control2+"\'");
ResultSetMetaData metaDatos = conjuntoResultados.getMetaData();
int numeroDeColumnas = metaDatos.getColumnCount();
int alea[] = new Numero().getAleatorios(4,10);
out.println("<wml>");
out.println("<card id=\"card18\">");
out.println("<p>");

for (int i=0; i < alea.length; i++)
{
switch(alea[i])
{
case 3:
out.println("<small>");
out.println(metaDatos.getColumnName(3)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"edad\" maxlength=\"2\"/>");
break;
case 4:
out.println("<small>");
out.println(metaDatos.getColumnName(4)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"no_telefono\" maxlength=\"10\"/>");
break;
case 5:
out.println("<small>");
out.println(metaDatos.getColumnName(5)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*M\" name=\"direccion\" maxlength=\"10\"/>");
break;
case 6:
out.println("<small>");
out.println(metaDatos.getColumnName(6)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"c_p\" maxlength=\"5\"/>");
break;
case 7:
out.println("<small>");
out.println(metaDatos.getColumnName(7)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*M\" name=\"ciudad\" maxlength=\"10\"/>");
break;
case 8:
out.println("<small>");
out.println(metaDatos.getColumnName(8)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*N\" name=\"estatura\" maxlength=\"4\"/>");
break;
case 9:
out.println("<small>");
out.println(metaDatos.getColumnName(9)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*M\" name=\"deporte_favorito\" maxlength=\"10\"/>");
break;
default:
out.println("<small>");
out.println(metaDatos.getColumnName(10)+ ":");
out.println("</small>");
out.println("<input type=\"texto\" format=\"*M\" name=\"curp\" maxlength=\"18\"/>");
}
}
out.println("</p>");
out.println("</card>");
out.println("</wml>");
}catch (Exception e)
{
out.println("<wml>");
out.println("<card id=\"card27\">");
out.println("<p>");
out.println("<br>error ==> "+e);
out.println("</br>");
out.println("</p>");
out.println("</card>");
out.println("</wml>");
}
out.close();
}
public String getServletInfo() {
return "Descripción";
}
public void destroy()
{
}
}



***** PORFAVOR NECESITO DE SU AYUDA...*****



SALUDOS
  #2 (permalink)  
Antiguo 14/10/2004, 11:28
 
Fecha de Ingreso: abril-2004
Ubicación: Morelos, México
Mensajes: 124
Antigüedad: 20 años
Puntos: 0
Saludos Gamarin

Antes que nada mi nombre es Javier Rebolledo Mancinez (creo q nos conocemos...jaja) sino, pues mucho gusto amigo..........

Con respecto a tu codigo:

ResultSet conjuntoResultados=stmt.executeQuery("SELECT * FROM preguntas where no_ctrl=\'"+control2+"\'");

A travez de esta instruccion obtienes los datos de la BD.
Apartir de aqui debes de hacer un ciclo para ir registro por registro recorriendo tu ResultSet.

//crea una clase con los datos q vas a guardar en el vector
public class datos{
String dato1;
int dato2;
int dato3;etc

public datos(){
}



}


Vector vec = new Vector();
datos dt = new datos();


While (conjuntoResultados.next())
{

dt.dato1 = conjuntoResultados.getString("dato1");
dtdato2= conjuntoResultados.getInt("dato2");
dtdato3 =conjuntoResultados.getInt("dato3");
//y asi suscecivamente.

//ya que guardaste dichos datos en una clase, se te ara mas facil instanciarlos cuando quieras manipular el vector

//se agrega la clase al vector.
vec.add(dt);
}
//De esta forma ya tienes toda conjunto de registro tipo clase dentro de tu vector.

//Para extrarlos solo tienes que convetir tu vector a la clase para volver a manipularlos.
datos dtvec = (datos) vec.ElementAt(0); //ciendo cero el primer registro tipo clase del vector.

System.out.println("Dato 1 primer registro:" +dtvec.dato1);




//Nota: checa la sintaxis, posiblemente puse mayusculas y minusculas en las instrucciones, ya que lo estoy haciendo en esta area de Respuesta rapida.


Saludos.......Espero que te sirva este mensaje..........
  #3 (permalink)  
Antiguo 14/10/2004, 12:40
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola, tambien puedes utilizar un java.util.List (en lugar de Vector) y el ResultSetMetadata para hacerlo más genérico. Haber si este código te sirve:

Código PHP:
    public List ejecutaConsulta(PreparedStatement ps)
        
throws SQLExceptionException
    
{
        List 
= new ArrayList();
        
ResultSet rs ps.executeQuery();
        
ResultSetMetaData rmd rs.getMetaData();
        
int numCols rmd.getColumnCount();
        
String s[];
        for(; 
rs.next(); v.add(s))
        {
            
= new String[numCols];
            for(
int i 1<= numColsi++)
                
s[1] = rs.getString(i);

        }

        
ps.close();
        
rs.close();
        return 
v;
    } 
__________________
Saludos,

H@C..
  #4 (permalink)  
Antiguo 14/10/2004, 12:45
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Realmente me merece un apaluzo la solucion de hugo777

Una solucion muy elegante

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 15/10/2004, 10:25
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 7 meses
Puntos: 0
que bien javier,, haber cuando tienes tiempo y me ayudas

jajajaja,, creo que si nos conocemos... acaso estudias en el tec?

bueno no entiendo muy bien lo de crear una clase, pero si me pudiaras explicar aqui en el tec. te lo agradeceria muchisimo...

ando un poco desesperado pues de esto depende la calificacion de seminario,, con gama2...

porfis...

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:58.