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

Select para update o insert según el caso

Estas en el tema de Select para update o insert según el caso en el foro de Java en Foros del Web. Hola gente. Tengo bien hecho y me funciona un método insertarr, otro ver y el update productos Todo en una clase productos. Lo que necesito ...
  #1 (permalink)  
Antiguo 02/04/2013, 13:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 14 años, 8 meses
Puntos: 0
Select para update o insert según el caso

Hola gente.
Tengo bien hecho y me funciona un método insertarr, otro ver y el update productos
Todo en una clase productos.
Lo que necesito es cuando inserto con la clase detalles de proveedores desde una factura los productos hacer el update si existe en la tabla productos de cantidad y precio unitario o en su defecto si ese producto no existe, directamente darlo de alta.

Pensaba hacer un cn.modificarProducto(); después del insertar en detalles, pero como lo hago?


cb. es llamar el objeto clase productos previo extends ... SE PUEDE ESO?
Código:
 try{
            
            String sql="select * from productos  where id_producto='"+id_producto+"'";

acá selecciono para saber si existe
            
            
      PreparedStatement c =cn.prepareStatement(sql);
                
                  ResultSet rs=c.executeQuery(sql);
             if(rs.next()==false){
            
          Productos cb=new Productos();
//Pensaba usar el método de la clase productos
          cb.insertarProducto(numero, codigo_barras, sql, cantidad, TOP_ALIGNMENT, id_factura, id_producto, sql);
             JOptionPane.showMessageDialog(null, "El numero ingresado no corresponde a una Factura cargada en el sistema");
             
            this.numero="";
             
            } 
             
             else{
                 
              
      cb.insertarProducto(....);
             }
  #2 (permalink)  
Antiguo 02/04/2013, 14:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 342
Antigüedad: 10 años, 4 meses
Puntos: 97
Respuesta: Select para update o insert según el caso

Cita:
Lo que necesito es cuando inserto con la clase detalles de proveedores desde una factura los productos hacer el update si existe en la tabla productos de cantidad y precio unitario o en su defecto si ese producto no existe, directamente darlo de alta.
No se entiende demasiado, pero lo que interpreto es que querés hacer una transacción a nivel de persistencia, si existe dicho producto le haces update, sino es un alta.

Esto es un ejemplo para que solo mires a nivel genérico de qué va... una vez que entiendas la estructura te darás cuenta que no es difícil... primero da el alta, luego recupera el id que se generó para insertar filas con ese id pero en una nueva tabla... en resumen, se carga en una tabla el pedido y en otra las líneas del pedido, saludos

Código Java:
Ver original
  1. //Se agrega un pedido a la base para un cliente dado.
  2.     public void AgregarPedido(Pedido MiPedido) throws SQLException, Exception
  3.     {
  4.         Class.forName(driver).newInstance();
  5.         con = DriverManager.getConnection(conexion,usuario,contraseña);
  6.         st = con.createStatement();
  7.  
  8.         String insert1 = "Insert into pedidos(idpersona,fechapedido, estadopedido, disponible ) values ('"+MiPedido.getPersona().getIdpersona()+"','"+MiPedido.getFecha()+"','En cocina',1)";
  9.         String insert2;
  10.  
  11.         int iSalidaPed = 0;
  12.  
  13.         try {
  14.             con.setAutoCommit(false);
  15.             st = con.createStatement();
  16.             st.executeUpdate(insert1);
  17.             rs = st.executeQuery("Select LAST_INSERT_ID()");
  18.             if(rs.next())
  19.             {
  20.                 iSalidaPed = rs.getInt(1);
  21.             }
  22.             for(Object element: MiPedido.getLineaPedido())
  23.             {
  24.                 insert2 = "Insert into lineaspedidos (idpedido, cantidad, idplato) values ("+ iSalidaPed +"," + ((LineaPedido)element).getCantidad() + "," + ((LineaPedido)element).getPlato().getIdplato()+")";
  25.                 st.executeUpdate(insert2);
  26.             }
  27.             con.commit();
  28.             st.close();
  29.             con.close();  
  30.         }
  31.         catch (SQLException ex)
  32.         {
  33.            con.rollback();
  34.         }    
  35.     }
  #3 (permalink)  
Antiguo 02/04/2013, 14:48
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Select para update o insert según el caso

Gracias ahora voy a verlo y ver si logro hacer que funcione, todavía yo estoy un poco mareada para lo que necesito, jaja.

gracias

Etiquetas: clase, insert, según, select, string, update
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 11:01.