ayuda con ciclo repetitivo

Realmente soy novato y he aprendido a programar (bueno lo que se), viendo otros codigos y luego haciendolo yo,esto en java swing, creo e avanzado bastante, mas estoy atorado en ciclos repetitivos, quiero modificar una bd de datos mysql con ciclos. si alguien pudiera ayudarme y/o mostrame un enmplo de eso.

por ejemplo

en la bd tengo

id formula porcentaje kilos status
1 2 1.5 9 S
2 2 3.5 0 N
3 2 2.00 0 N

lo que quiero es multiplicar el porcentaje 1.5% x peso 600 kg y modificar el status a S, esto ya lo pude hacer, ahora como hago para que lo haga repetidamente en todos los que son formula 2 y status n...SE QU NECESITO UN while...pero estoy perdido

si necesitan pantallazos lo puedo hacer

AdjuntoTamaño
JAVA PANTALLA.jpg238.36 KB
BD.jpg309.11 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de marcosaw

Desde SQL

Puedes hacerlo desde SQL, no necesitas java para eso (o no como entendí el problema). Puedes hacer algo como

UPDATE formulasdetalle_peso SET kilos=Porcentaje/100*600, estatus='S' WHERE  Id_formula=2 AND  estatus='N'

A ver si te funciona, ya que este query modifica todas las filas con id_formula = 2 y estatus = 'N' aunque este último lo cambiará por 'S'. La columna de kilos es el resultado de la multiplicación del porcentaje entre 100 por 600.

NOTA: cambié el nombre de columna Status por estatus, pero si te funciona así a ti déjala igual.

Si puedes poner el código de cómo haces tu conexión a tu base de datos sería mejor ya que el Query lo construyes desde Java con un PreparedStatement, para poder establecer el 600 u otro número desde tu textbox "kilos"; esto si es que no estás usando ningún framework de persistencia (si fuera este último caso es más fácil). Saludos

Re: Desde SQL

Probablemente sea más simple, rápido y eficiente desde SQL.

Pero creo que el punto de hacerlo por ciclos es justamente que aprenda a utilizar la lógica (a mi parecer esto se asemeja con un ejercicio de un libro o tarea de la escuela).

Creo que a parte de la opción que te da @marcosaw puedes decantarte por esto para obtener los registros de la base de datos.

Luego de tener los registros, dentro del while modificas la lógica para hacer las modificaciones en base de datos, y hay varios artículos en los que te puedes apoyar.

Ahora que cómo dice @marcosaw:

Si puedes poner el código de cómo haces tu conexión a tu base de datos sería mejor

Respecto a lo que comentas sobre persistencia, creo que @j-ines aún está en proceso de aprendizaje, dudo que maneje algún framework... y de más fácil, será dependiendo lo que hagas, pero con un ORM algo tan sencillo cómo una consulta con pivot se convierte en una tarea cuando menos de mucho detalle. Creo que en todo caso lo mejor sería utilizar algo similar a SpringJdbcTemplate.

Saludos.

Imagen de julgo

depende

como dice wishmaster eso de mas fácil depende de lo que se haga ya que los frameworks agregan carga extra en las configuraciones y en muchos casos he visto que los utilizan para un simple select y hay nomas se quedan ya que adentrarse en su uso se les hace complicado y tedioso y no aprovechan las ventajas de estos frameworks que tienen decenas de documentacion, cuando se pudo haber hecho con jdbc , yo también recomendaría springjdbctemplate y lo usaría en todo lo que sea posible, ya explico ezamudio en un blog pasado con ejemplos las ventajas busca en el foro ,lo bueno de spring es que no es intrusivo.

Imagen de marcosaw

No es la única consulta

Al parecer no es la única consulta que se hará en la aplicación; si son varias yo prefiero Spring-Hibernate, ya que resuelven muchas broncas de pools de conexiones, beans, concurrencia, con un costo pesado en la configuración por supuesto, pero esa es mi escuela.

Por las pantallas al parecer este requerimiento es solo un ejemplo de lo que se necesita (en transacciones con la base de datos).

Por otro lado, si es un ejercicio escolar para practicar el while, dependerá de cómo está implementada la conexión y si está usando algún patrón de diseño -DAO por ejemplo- para hacer el diseño de ese bucle.

Re: No es la única consulta

Al parecer no es la única consulta que se hará en la aplicación; si son varias yo prefiero Spring-Hibernate, ya que resuelven muchas broncas de pools de conexiones, beans, concurrencia, con un costo pesado en la configuración por supuesto, pero esa es mi escuela.

Me es difícil entenderlo, vamos que Spring tiene su propio ORM basado en JPA, creo que deberías probarlo, personalmente me parece mucho mejor y creo que la integración con la pila de Spring es más simple.

Respecto al tema de beans, pools y conexiones, pues... los pools pueden ser un recurso y con CDI (o Spring DI) puedes resolverlo sin tener que agregar la capa del ORM, de tal manera que de vuelta, me es difícil comprender. Y la concurrencia, ¿puedes explicarlo un poco?

Por las pantallas al parecer este requerimiento es solo un ejemplo de lo que se necesita (en transacciones con la base de datos).

Pues a juzgar por las pantallas, para mí, si necesito usar una capa intermedia, pondría SpringJdbcTemplate, puedes hacer tu mismo los Mappers para tus POJO, con Spring instanciar los beans de tu(s) fuente(s) de datos. Y de paso tienes todas las ventajas de SQL, sin las desventajas del ORM... aunque también sin las ventajas (adiós eso de entityManager.persist(miObjeto);).

Por otro lado, si es un ejercicio escolar para practicar el while, dependerá de cómo está implementada la conexión y si está usando algún patrón de diseño -DAO por ejemplo- para hacer el diseño de ese bucle.

Importantísimo y sin duda, quién pregunta debería mostrarnos :)

Re: depende

ya explico ezamudio en un blog pasado con ejemplos las ventajas busca en el foro ,lo bueno de spring es que no es intrusivo.

Y además de ser poco intrusivo, cuando Java por si mismo hace las cosas (ej. CDI), es Spring el primero en decir que se use el estándar en vez del enfoque de Spring.

Gracias

Efectivamente, tu sugerencia es correcta, marcosawm, mas sin embargo el proyecto corre sobre java, pero afortunadamente un dia despues de publicar, logre avanzar y resolvi este detalle, en algo que ya llevaba mucho tiempo atorado...agradezco tu tiempo y tu interes....saludos y buen dia

gracias

gracias,julgo, mira utilizo netbeans y pues es un proyecto con el que estoy trabajando desde hace 2 años,(solo lo desarrollo en mis tiempos libres),realmente lo que se de java, es por medio de ejemplos elaborados y terminados, analizando y ejecutando el codigo, creo he avanzado mucho, me gusta java, y la verdad si me desespere por que ya llevava como 3 meses atorado en algo que no me salia, resolvi mi duda y mi codigo ya corre perfectamente, aun asi tomare en cuenta tu sugerencia e investigare mas acerca de springjdbctemplate, hay que ver otras alternativas gracias por tomarte tu tiempo en ayudar....saludos y buen dia

Imagen de marcosaw

De nada

Por nada

Aunque el proyecto corre en java todas las transacciones las haces con lenguaje SQL y java, a través de JDBC, te proveen de herramientas para lograr esto. Pero que bueno que lo pudiste resolver, estaría bueno que comentaras cómo lo hiciste, solo para compartir. Un saludo.