Hola caim. Revisa la forma en la que obtenes los datos desde el resultset. Si no vi mal estas tratando de recuperar mas de una columna en la misma sentencia y la forma correcta seria:
String col1 = rs.getString("nombreColumna1");
String col2 = rs.getString("nombreColumna2");
.......
Espero que te sirva. Saludos.
Buenas! Tengo un problema con este programa. Cuando intento ingresar datos en el sector viajes que es una tabla de relación entre la tabla camión y destino me salta un error. Así mismo, cuando hago cualquier consulta me salta un error, a no ser que consulte un solo dato de una única tabla D: Paso el código.
En ingresar en viajes:
private void btingresarviajeActionPerformed(java.awt.event.ActionEvent evt) {
String query = "insert into viaje(matricula,codigo,fecha,numero) values (?,?,?,?)";
try {
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, Integer.parseInt(this.txtmatricula.getText()));//tipo String en tabla
ps.setInt(2, Integer.parseInt(this.txtcodigo.getText()));
ps.setString(3, this.txtfecha.getText());
ps.setInt(4, Integer.parseInt(this.txtnum.getText()));//tipo int en tabla
int r = ps.executeUpdate();
if(r>0){
System.out.println("exito ");
conn.commit(); //confirma camnbios guarda BD
} else {
conn.rollback();//desase
}
} catch (SQLException ex) {
if(conn != null) try {
conn.rollback();
} catch (SQLException ex1) {
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex1);
}
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex);
}
}
Consultas:
1-
private void btconsulta2ActionPerformed(java.awt.event.ActionEvent evt) {
String query="select nombre,km from destino where destino.pais='argentina' and destino.km>1000 and destino.km<1500;";
try {
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String tt = rs.getString("Destinos en argentina entre los 1000 y 1500 km");
System.out.println("Destinos en argentina entre los 1000 y 1500 km: " + tt);
}
}catch (SQLException ex) {
if(conn != null) try {
conn.rollback();
} catch (SQLException ex1) {
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex1);
}
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex);
}
}
2-
private void btconsulta3ActionPerformed(java.awt.event.ActionEvent evt) {
String query="select pais,count(numero) from destino, viaje where destino.codigo=viaje.codigo group by(pais);";
try {
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String bb = rs.getString("pais,numero");
System.out.println("Viajes realizados a cada pais " + bb);
}
}catch (SQLException ex) {
if(conn != null) try {
conn.rollback();
} catch (SQLException ex1) {
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex1);
}
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex);
}
}
3-
private void btconsulta5ActionPerformed(java.awt.event.ActionEvent evt) {
// promedio de distancias existentes entre los destinos de cada pais
String query="select nombre,pais,avg(km)from destino group by(nombre)";
try {
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String jja = rs.getString("nombre,pais,km");
System.out.println("Promedio de distancias existentes entre los destinos de cada pais " + jja);
}
}catch (SQLException ex) {
if(conn != null) try {
conn.rollback();
} catch (SQLException ex1) {
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex1);
}
Logger.getLogger(ingresar.class.getName()).log(Level.SEVERE, null, ex);
}
}
Alguna ayuda? Gracias de antemano!