2013-02-20 3 views
-1
  • Я попытался вставить данные для выбора продукта класса класс idcat категории с комбо, но ничего любые идеи, пожалуйста,Как вставить данные из одной таблицы в другую таблицу, выбрав ее для combobox?

  • -Занятия

    общественного класса CATEGORIA {

    private int idcat; 
    private String name; 
    private String descrip; 
    

    }

    Публичный класс Producto {

    private int producto; 
    private int idcategoria; 
    private String nombre; 
    private String descrip; 
    

    }

    -DAO КЛАСС CategoriaDAO

    общественности Коллекция listarIdCat() бросает DAOExcepcion {

    Collection<Categoria> c=new ArrayList<Categoria>(); 
        String query="SELECT id_categoria from categoria "; 
        Connection con=null; 
        PreparedStatement stmt=null; 
        ResultSet rs=null; 
    
        try { 
         con=ConexionBD.obtenerConexionDirecta(); 
         stmt=con.prepareStatement(query); 
         rs=stmt.executeQuery(); 
         while(rs.next()) { 
          Categoria vo=new Categoria(); 
          vo.setIdcat(rs.getInt("id_categoria")); 
          c.add(vo); 
    
         } 
    
        } catch (SQLException e) { 
         System.err.println(e.getMessage()); 
         throw new DAOExcepcion(e.getMessage()); 
        }finally{ 
    
         this.cerrarStatement(stmt); 
    
         this.cerrarResultSet(rs); 
         this.cerrarConexion(con); 
        } 
        return c; 
    } 
    
  • DAO CLASS ProductoDAO

public void insertar(Producto vo) throws DAOExcepcion { 

>  
>    String query = "INSERT INTO producto(id_categoria,nombre,descripcion) VALUES ((SELECT id_categoria 
> FROM categoria WHERE id_categoria=?),?,?,?)"; 
>    Connection con = null; 
>    PreparedStatement stmt = null; 
>  
>    try { 
>     con = ConexionBD.obtenerConexionDirecta(); 
>     stmt = con.prepareStatement(query); 
>     stmt.setInt(1, vo.getIdcat()); 
>     stmt.setString(2, vo.getNombre()); 
>     stmt.setString(3, vo.getDescrip()); 
>     int i = stmt.executeUpdate(); 
>     if (i != 1) { 
>      throw new SQLException("No se pudo insertar"); 
>     } 
>    } catch (SQLException e) { 
>     System.err.println(e.getMessage()); 
>     throw new DAOExcepcion(e.getMessage()); 
>    } finally { 
>     this.cerrarStatement(stmt); 
>     this.cerrarConexion(con); 
>    } 
>  
>   } 
  • Negocio КЛАСС CategoriaNegocio

    общественного класса CategoriaNegocio {

    public Collection<Categoria> listarIdCat()throws DAOExcepcion{ 
    
        CategoriaDAO dao=new CategoriaDAO(); 
    
        Collection<Categoria> lista=dao.listarIdCat(); 
    
        return lista; 
    
    } 
    

    }

  • Negocio КЛАСС ProductoNegocio

    public void insertarProducto(int idCat, String nom, String descrip, 
          double prec, int stock, String image) throws DAOExcepcion { 
    
         Producto p = new Producto(); 
         p.setIdcat(idCat); 
         p.setNombre(nom); 
         p.setDescrip(descrip); 
         ProductoDAO dao = new ProductoDAO(); 
         try { 
          dao.insertar(p); 
         } catch (DAOExcepcion e) { 
          throw e; 
         } 
    
        } 
    
  • сервлет InsertarProdServlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     CategoriaNegocio negocio = new CategoriaNegocio(); 

     try { 

      Collection<Categoria> lista = negocio.listarIdCat(); 

      request.setAttribute("IDCATEGORIA", lista); 

     } catch (DAOExcepcion e) { 

      System.out.println(e.getMessage()); 
     } 
     RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/insertar.jsp"); 
     rd.forward(request, response); 

    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     String id=request.getParameter("tid_cat"); 
     int idcat=Integer.parseInt(id.trim()); 

     String nom=request.getParameter("tnomprod"); 
     String des=request.getParameter("tdesprod"); 



     ProductoNegocio negocio=new ProductoNegocio(); 

     try { 
      negocio.insertarProducto(idcat, nom, des); 
      request.setAttribute("MENSAJE", "Se inserto correctamente"); 
      RequestDispatcher rd=request.getRequestDispatcher("/insertar.jsp"); 
      rd.forward(request,response); 


     } catch (DAOExcepcion e) { 

      request.setAttribute("MENSAJE_ERROR", "Hubo problemas"); 
      RequestDispatcher rd=request.getRequestDispatcher("/error.jsp"); 
      rd.forward(request,response); 
     } 


    } 

JSP insertar

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form action="InsertarProdServlet" method="post"> 

<table><caption>Inserte Producto</caption> 
<tr> 
<td align="center"><select name="tid_cat" size="1" > 
<c:forEach items="${IDCATEGORIA}" var="c" > 
<option value="${c.idcategoria}" >${c.idcategoria}</option> 
</c:forEach> 
</select></td><td> 
</td> 
</tr> 
<tr> 
<td>NOMBRE</td><td><input type="text" name="tnomprod"> </td></tr><tr> 
<td>DESCRIPCION</td><td><input type="text" name="tdesprod" > </td></tr><tr> 
<td><input type="submit" value="INSERTAR"> </td></tr><tr> 
</tr> 
</table> 
</form> 
${MENSAJE} 
</body> 
</html> 
+0

Здравствуйте, BalusC, это мой вопрос – JuanHeart

ответ

0

Вы должны получить доступ к приложению через Servlet как http://localhost/YouWebAppName/InsertarProdServlet, Thi s вызовет запрос GET (таким образом, выполнив функцию doGet) и установит атрибуты запроса. Затем он перейдет на вашу страницу insertar.jsp, и при нажатии на submit он будет вызывать запрос POST (таким образом, выполняет функцию doPost).

В качестве побочного примечания, в следующий раз не размещайте эту стену кода или никто не будет читать ваши вопросы, просто отправьте SSCCE вашего кода, показывающего, где может быть проблема. (IMO, когда я увидел ваш вопрос, я не хотел его читать, просто чтобы увидеть весь код, который не является чем-то похожим на то, часть реальной проблемы).

Смежные вопросы