PDA

Ver la Versión Completa : forma de programar no se si es la correcta ?


gulder
04-04-2016, 16:02:36
bueno dias grupo tenia varos años sin saber nada de ustedes pero siempre los recuerdo, bueno hasta que regrese, ahora con una duda mas de procedimiento o de saber si las cosas están bien hechas o que, vamos al grano

en mi aplicación que esta hecha en java y con una bd en mysql tengo varias tablas y muchas relaciones la duda me asalta por que siempre que voy a guardar un registro en una tabla, en la cual tengo varias relaciones, antes de guardar ese registro me toca hacer varias consultas a la tabla sacando las claves primarias que hacen parte de esta relación para que el registro quede bien insertado con la relación, pero no se si esto esta bien hecho si es la forma mas correcta de hacerlo o hay una forma mas eficiente de hacerlo miren lo que hago :

String sentenciaSQl="INSERT INTO PRODUCTOS (REFERENCIA,CODIGO_BARRAS,NOMBRE,PRECIO_COMPRA,PRECIO_VENTA,ID_CATEGORIA,ID_CATEGORIA_IMPUESTO,ID_UN IDADES,STOCK_MIN,STOCK_MAX) VALUES ('" + referencia.getText() + "','" +
codigoBarras.getText() + "','" +
nombre.getText() + "','" +
preciocompra_ + "','" +
pvp_ + "','" +
ID_CATEGORIA( categoria.getSelectedItem().toString() ) + "','" +
ID_CATEGORIA_IMPUESTOS ( impuestos.getSelectedItem().toString() )+ "','" +
ID_UNIDADES ( unidades.getSelectedItem().toString() )+ "','" +
stock_min + "','" +
stock_max + "')";


note ce que al momento de insertar un registro en la tabla productos, hago primero tres select en los siguientes métodos ID_CATEGORIA, ID_CATEGORIA_IMPUESTOS , ID_UNIDADES , los cuales me permiten traer las claves primarias para dicha relación, la pregunta es si esa es la forma mas eficiente para hacer lo que estoy haciendo, obviamente ella funciona pero no se si es la mejor forma,

bueno espero alguna respuesta gracias de antemano gu!der....

Neftali [Germán.Estévez]
04-04-2016, 16:43:36
Yo como primera opción, te recomendaría que utilizaras parámetros para "montar" la sentencia SQL.
Mucha más claridad y menos número de errores.

Por otro lado, si vas a realizar muuuuchos INSERT similares (por ejemplo, en una INSERCIÓN masiva), las búsquedas de los ID's se podrían optimizar realizando previamente una consulta para tenerlos todos, en lugar de uno cada vez en el INSERT.

gulder
05-04-2016, 16:33:19
gracias Neftali por tu respuesta bueno la segunda parte si la entendi perfectamente pero lo de parametros no entendi :confused: podrias explicarme mas a fondo cordial saludo

Neftali [Germán.Estévez]
05-04-2016, 17:37:43
Nada, nada, estaba pensando en Delphi....

roman
05-04-2016, 17:49:51
Nada, nada, estaba pensando en Delphi....

Seguramente en Java también se puede. Aquí (http://www.javaworld.com/article/2077706/core-java/named-parameters-for-preparedstatement.html) hay un ejemplo, usando JDBC, de prepared statements y parámetros.

LineComment Saludos