Java - Hacer un arraylist

 
Vista:
sin imagen de perfil

Hacer un arraylist

Publicado por Laura (2 intervenciones) el 07/08/2017 21:46:02
Buenas tardes, tengo este código, pero únicamente me muestra el primer resultado encontrado en la base de datos, cómo puedo hacer para que me muestre todos los resultados???

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%
String cod_id = request.getParameter("cod_id").toString();
String  data ="";
Connection conn = null;
String url = "jdbc:mysql://10.140.0.154:3306/";
String dbName = "promociones";
String driver = "com.mysql.jdbc.Driver";
String userName = "desarrollo";
String password = "Programa2017";
int sumcount=0;
Statement st;
try {
	Class.forName(driver).newInstance();
	conn = DriverManager.getConnection(url+dbName,userName,password);
	String query = "select * from codigos where codigo='"+cod_id+"'";
	st = conn.createStatement();
	ResultSet  rs = st.executeQuery(query);
	while(rs.next())
	{
		data = ":" + cod_id + ":" + rs.getString(3) + ":" + rs.getString(4) + ":" + rs.getString(5);
	}
	out.println(data);
}
catch (Exception e) {
	e.printStackTrace();
}
%>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 80
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Hacer un arraylist

Publicado por Juan (108 intervenciones) el 08/08/2017 12:37:37
Buenas Laura

El problema es que estás sobreescribiendo una y otra vez data. Por lo tanto, yo creo que en realidad te está mostrando el último resultado de la BD y no el primero como dices, lo que tendrías que hacer es concatenar cadena con un data = data + ....

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hacer un arraylist

Publicado por Toni (7 intervenciones) el 10/08/2017 19:49:59
Buenas Laura, como bien dice Juan estas sobreescribiendo el valor de la variable data piensa que lo tienes dentro de un bucle , así que el valor será el último.

Prueba a crear una ArrayList del tipo del dato que necesites por ejemplo y dentro del while vas añadiendo data al array, así almacenarás todos los datos y luego simplemente coges el que necesites.

Si nunca has utilizado arraylist dímelo y te digo como.

Un saludo !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de karlos kstro
Val: 75
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Hacer un arraylist

Publicado por karlos kstro (31 intervenciones) el 11/08/2017 03:22:00
Prueba

1
2
3
4
5
while(rs.next())
{
	data = ":" + cod_id + ":" + rs.getString(3) + ":" + rs.getString(4) + ":" + rs.getString(5);
	out.println(data);
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Hacer un arraylist

Publicado por Juan Francisco (58 intervenciones) el 11/08/2017 19:34:08
Como ha comentado Toni es mejor lo del arrayList..
Lo que pasa es que despues lo tendras que recorrepara mostrarlo...o sea repetir otro bucle..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ArrayList<String> lista=new ArraList<>();
 
 
.....
//Recorres el resulset
while(rs.next())
{
	data = ":" + cod_id + ":" + rs.getString(3) + ":" + rs.getString(4) + ":" + rs.getString(5);
	lista.add(data);
}
//Recorres la lista del arraylist con un for eche
 
for(String dato:lista){
    out.println(dato);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Hacer un arraylist

Publicado por motard (10 intervenciones) el 16/08/2017 11:40:17
Bueno todo lo que te dicen del arraylist me parece correcto.

Pero queria decirte un par de cosas:

1 - No hagas peticiones a BBDD desde una JSP, hazte una clase Java para ello. Ten la cadena de conexion el password y el usuario separados del front-end siempre, es muy importante.

2 - La query esta mal planteada

1
String query = "select * from codigos where codigo='"+cod_id+"'"; //Esto es el claro ejemplo de SQL Injection 
Lo correcto es:
1
2
3
String query = "select * from codigos where codigo=?";
//Antes de ejecutar el executeQuery
st.setInt(1, cod_id);

Salu2,
Motard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar