JAVA JDBC: ¿Necesito hacerlo en el resultado del resultado cuando la consulta devuelve una sola fila? -- java campo con jdbc camp Relacionados El problema

Java JDBC: Do I need to loop ResultSet when query returns single row?


0
vote

problema

Español

Mi consulta SQL devuelve una fila solamente. Al consultar, ¿necesito seguir el patrón usual id13 o puedo hacer:

  ""4  

en lugar de:

  ""5  
Original en ingles

My sql query returns one row only. When querying, do I need to follow the usual while(rs.next) {...} pattern or can I do:

... rs.next(); int id  = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); ... 

Instead of:

...       while(rs.next()){          //Retrieve by column name          int id  = rs.getInt("id");          int age = rs.getInt("age");          String first = rs.getString("first");          String last = rs.getString("last");       } ... 
     

Lista de respuestas

4
 
vote
vote
La mejor respuesta
 

No, no tiene que hacer un bucle cada vez desde la llamada de rs.next() ya establece el puntero de null a la primera fila disponible y devuelve Wheather, hay una entrada o no.

Aún así tiene sentido verificar si se devolvió algo:

  if(rs.next()) {     // process resultset }else {     // do something when no data arrived }   
 

No you don't have to loop every time since the call of rs.next() already sets the pointer from null to the first available row and returns wheather there is an entry or not.

Still it makes sense to check if something was returned at all:

if(rs.next()) {     // process resultset }else {     // do something when no data arrived } 
 
 
       
       
0
 
vote

Puede evitar el uso del bucle si solo está interesado en el primer resultado (o solo hay uno). También sería una buena práctica si se asegura de que obtuviera un resultado:

  ... if (rs.next()) {     int id  = rs.getInt("id");     int age = rs.getInt("age");     String first = rs.getString("first");     String last = rs.getString("last"); } ...   

En cualquier caso, no olvide cerrar los recursos ya no se usan (ResultSet, Declaración, Conexión ...)

 

You can avoid the use of the loop if you are only interested on the first result (or there is only one). It would also be a good practice if you make sure you got some result:

... if (rs.next()) {     int id  = rs.getInt("id");     int age = rs.getInt("age");     String first = rs.getString("first");     String last = rs.getString("last"); } ... 

In any case, don't forget to close the resources no longer used (ResultSet, Statement, Connection...)

 
 

Relacionados problema

2  El intento de conexión falló en el servidor PostgreSQL  ( Connection attempt failed in postgresql server ) 
En nuestro proyecto, estamos utilizando Postgressql (8.3) como servidor de base de datos, pero rara vez estamos enfrentando problema (una vez un tiempo). E...

0  Gran diferencia entre el tiempo de ejecución de la misma consulta de SQL en Java y MySQL  ( Huge difference between the running time of the same sql query in java and mysql ) 
Tengo una función de la siguiente manera: public static ArrayList<Article> getNewsList(Database db, Date start,Date end,int nextNth,int limit,String tableN...

2  Inserte una imagen en la base de datos (SQLite) con el código Java. ¿Qué tengo que hacer?  ( Insert a picture into databasesqlite with java code what should i do ) 
En la base de datos SQLite, configuro un blob escrito de campo. Luego, escribí el código Java: PreparedStatement preStmt = con.prepareStatement("INSERT INT...

4  Tipo de base de datos de mapa a Clase de Java de concreto  ( Map database type to concrete java class ) 
Fondo Mapa Un tipo de datos de columna a su clase Java correspondiente. Problema Una consulta devuelve información meta de una base de datos: SELECT ...

3  Error de captura 266 en SQL Server 2005  ( Trapping error 266 in sql server 2005 ) 
¿Hay alguna forma de trampa error 266 Dentro de JDBC o INTERIOR SQL enviando una declaración EXEC de alguna manera? Estamos buscando desarrollar un guardi...

5  java.lang.classcastException: com.mchange.v2.c3p0.impl.newproxyconnection  ( Java lang classcastexception com mchange v2 c3p0 impl newproxyconnection ) 
Estoy obteniendo lo siguiente java.lang.ClassCastException: com.mchange.v2.c3p0.impl.NewProxyConnection cuando se ejecuta el siguiente código. ¿Podría ...

7  ¿Por qué el número de columnas de columnas y / o la precisión difieren en JDBC desde Oracle 10 a 11?  ( Why would number columns scale and or precision differ in jdbc from oracle 10 t ) 
Para nuestro desarrollo de la base de datos, tenemos en una mano un script de Schema DDL completo, para instalaciones de scratch, y en el otro conjunto de scr...

1  Conector de origen Kafka JDBC: cree temas de los valores de la columna  ( Kafka jdbc source connector create topics from column values ) 
Tengo un microservicio que utiliza Oracledb para publicar los cambios del sistema en la tabla EVENT_STORE . La tabla EVENT_STORE contiene una columna TYPE...

1  No se puede conectar al archivo * .dbf a través de controladores JDBC  ( Cannot connect to dbf file through jdbc drivers ) 
Estoy tratando de conectarme al archivo * .dbf (dbase III) en mi aplicación Java, ejecutándose en un sistema Windows Server 2003. Estoy encontrando este error...

6  Prevención de la inyección de SQL en JDBC sin usar declaraciones preparadas  ( Preventing sql injection in jdbc without using prepared statements ) 
Soy consciente de que el uso de declaraciones preparadas es la mejor manera de proteger contra la inyección de SQL (y los errores de sintaxis debido a los car...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos