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

Ya no se que probar no andaaaa :( hsqldb

Estas en el tema de Ya no se que probar no andaaaa :( hsqldb en el foro de Java en Foros del Web. La conexion la hago asi: url= "jdbc:hsqldb:file:"+p.getRuta()+"\\data\\com_d b; "; conn = DriverManager.getConnection(url); cuando llamo a crear tabla, la crea bien, cuando hago insert tambien anda ...
  #1 (permalink)  
Antiguo 07/07/2010, 02:24
 
Fecha de Ingreso: enero-2005
Mensajes: 15
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Ya no se que probar no andaaaa :( hsqldb

La conexion la hago asi:


url= "jdbc:hsqldb:file:"+p.getRuta()+"\\data\\com_d b; ";

conn = DriverManager.getConnection(url);

cuando llamo a crear tabla, la crea bien, cuando hago insert tambien anda bien, el problema es el select, no trae datos, me fije si cuando hago el select, la conexion existia..y existe. pero no me deja hacer select, siempre viene sin datos, a pesar de que si en ese mismo metodo cambio el select por un insert e intento insertar un dato duplicado da el logico error de primary key.

La conexion la hago desde otra clase, que conecta, luego pasa Connection atravez de un getConnection(), ese "valor es la entada del metodo que muestro:

public ArrayList<RubroDTO> selectAll(Connection con) {
ArrayList<RubroDTO> resultado = new ArrayList<RubroDTO>();
ResultSet rs = null;
PreparedStatement ps = null;
String SQL_SELECT_All =
"SELECT idRubro,"
+ " descripcion FROM rubros ";

try {

ps = con.prepareStatement(SQL_SELECT_All);

rs=ps.executeQuery();
// rs.first();
resultado = rsAarray(rs);

} catch (SQLException ex) {


JOptionPane.showMessageDialog(null, "Error al hacer select en la base de datos "+"\n" + ex.getMessage(), "", JOptionPane.ERROR_MESSAGE);
} finally {
cerrar(rs);
// cerrar(ps);
//cerrar(con);
}


return resultado;
}
  #2 (permalink)  
Antiguo 07/07/2010, 03:17
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 15 años, 3 meses
Puntos: 10
Respuesta: Ya no se que probar no andaaaa :( hsqldb

Wenas

Haces un commit despues de insertar los datos?? o tienes puesto el autocommit a true??

Saludos.
__________________
--
NO. Tu problema no es urgente.

CCFVLS
  #3 (permalink)  
Antiguo 07/07/2010, 06:11
 
Fecha de Ingreso: enero-2005
Mensajes: 15
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Ya no se que probar no andaaaa :( hsqldb

El autocommit lo puse true en la clase que realiza la conexion, pero sigo con el error.
  #4 (permalink)  
Antiguo 07/07/2010, 10:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Ya no se que probar no andaaaa :( hsqldb

Esta es la forma correcta cuando se hace las consultas.

Código:
Statement st;
ResultSet rs;

st = cn.createStatement();
rs = st.executeQuery(SQL_SELECT_All);
 if(rs.next)
..............
Esta forma abreviada la utilizo yo


Código:
ResultSet rs;

rs = cn.createStatement().executeQuery(SQL_SELECT_All);
 if(rs.next)
..............
Espero que te sirva.

Por cierto. el preparedStatement se utiliza para crear sentencias preparadas con el fin de hacer inserts o updates. No se utiliza para hacer consulta.

Te recominedo que busques algun manual de sql en google.
  #5 (permalink)  
Antiguo 07/07/2010, 20:16
 
Fecha de Ingreso: enero-2005
Mensajes: 15
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Ya no se que probar no andaaaa :( hsqldb

Muchas gracias por la respuesta. El error me dio tanto haciendo como corresponde, o sea usando createStatement() como usando prepareStatement() que como bien vos decis se usa el segundo para hacer insert y updates.

Me sirvio tu respuesta para saber la manera correcta, ya que de ambas maneras funciona siempre y cuando uno al Resulset le haga next como haces vos y no rs.first como estuve haciendo yo.

En MySQL funciona bien haciendo rs.first en hsqldb no se puede evidentemente.

Gracias nuevamente por las respuestas..ya estaba "quemado"

Etiquetas: probar
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 07:39.