Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Uso de comillas simples en la query de insert

Estaba en el curso en la parte de ingresar datos a la base de datos a través del formulario en java, pero cuando hace la query de insert, usa unas comillas simples, combinadas con las comillas comunes, para que lo tome como un String ( eso es lo que entiendo), pero no logro entender como las usa. Veo signos + dentro y fuera de las comillas, así que no terminé de comprender el uso.

statement.execute("INSERT INTO PRODUCTO(nombre, descripcion, cantidad) "
                + " VALUES('" + producto.get("NOMBRE") + "', '"
                + producto.get("DESCRIPCION") + "', "
                + producto.get("CANTIDAD"), Statement.RETURN_GENERATED_KEYS);
2 respuestas
solución!

Hola Julian, que bueno verte aquí.

El uso de comillas diferentes en el comando insert sirve para indicarle al programa dónde comienza y termina cada expresión, ya que están anidadas.

Por ejemplo, piense en la String abajo:

"INSERT INTO PRODUCTO(nombre, descripcion) VALUES("Computadora", "Computadora samsung gris")";

¿Qué pasará en ese caso? Tenemos comillas dobles tanto para definir el statement insert como para ajustar el valor del nombre.

Obtendremos un error porque la comilla que rodea el valor del nombre encierra la primera comilla que define la cadena de consulta. Es un problema de sintaxis.

  • La primera solución sería envolver los valores entre comillas simples, como hizo el instructor en la clase:
"INSERT INTO PRODUCTO(nombre, descripcion) VALUES('Computadora', 'Computadora samsung gris')";
  • Pero aún es posible insertar de otra manera, con el uso de escape - escape es hacer que ciertos caracteres de nuestra cadena se interpreten de otra manera. En este caso, el evitaría que las comillas que rodean el valor del nombre se interpreten como el cierre de la primera comilla de la consulta:
"INSERT INTO PRODUCTO(nombre, descripcion) VALUES(\"Computadora\", \"Computadora samsung gris\")";

¡Intenta ejecutar tu código en ambos sentidos para practicar!

Espero haberte quedado claro, cualquier duda estaremos aquí para ayudarte =)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Gracias Maria!!!!!