Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

augustinoi

foreign key em pstm

Recommended Posts

Ola, preciso implementar um código de uma foreign key como no modelo 

 

package Persistencia;

import Entidades.TipoDeComportamento;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Augusto
 */
public class TipoDeComportamentoDAO extends Conexao implements InterFaceDAO<TipoDeComportamento> {

    @Override
    public void salvar(TipoDeComportamento tipodecomportamento) {

        String sqlInsert = "INSERT INTO TIPODECOMPORTAMENTO ( "
                + "CODIGO, "
                + "DESCRICAO "
                + ") VALUES (?,?);";

        if (pesquisarSeExisteOTipoDeComportamento(tipodecomportamento)) {

            System.out.print("Já existe um Tipo de Comportamento cadastrado com este Código no Banco de Dados. ");

            System.out.println("( " + tipodecomportamento.getCodigotipo() + " | " + buscarPorID(tipodecomportamento.getCodigotipo()).getDescricao() + " )");

        } else {

            try {
                pstm = abrirConexaoComBD().prepareStatement(sqlInsert);

                pstm.setInt(1, tipodecomportamento.getCodigotipo());
                pstm.setString(2, tipodecomportamento.getDescricao());

                pstm.execute();
                pstm.close();

                fecharConexaocomBD();

            } catch (SQLException e) {

                e.printStackTrace();
            }
        }

    }

    @Override
    public void deletar(TipoDeComportamento tipodecomportamento) {
 String sqlDeletar = "DELETE FROM TIPODECOMPORTAMENTO WHERE CODIGO = ?";

        try {

            pstm = abrirConexaoComBD().prepareStatement(sqlDeletar);
            pstm.setInt(1, tipodecomportamento.getCodigotipo());

            pstm.execute();
            pstm.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }
    }

    @Override
    public void update(TipoDeComportamento tipodecomportamento) {

        String sql = "UPDATE TIPODECOMPORTAMENTO SET DESCRICAO=? where CODIGO=?";

        try {

            pstm = abrirConexaoComBD().prepareStatement(sql);
            pstm.setString(1, tipodecomportamento.getDescricao());
            pstm.setInt(2, tipodecomportamento.getCodigotipo());
            pstm.execute();
            pstm.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    @Override
    public TipoDeComportamento buscarPorID(Integer id) {

        String sqlPesquisarPorId = "SELECT * FROM TIPODECOMPORTAMENTO WHERE CODIGO = ?";
        TipoDeComportamento tipodecomportamento = new TipoDeComportamento();
        try {

            pstm = abrirConexaoComBD().prepareStatement(sqlPesquisarPorId);
            pstm.setInt(1, id);
            ResultSet list = pstm.executeQuery();
            while (list.next()) {

                tipodecomportamento.setCodigotipo(list.getInt("CODIGO"));
                tipodecomportamento.setDescricao(list.getString("DESCRICAO"));

            }

            pstm.close();
            list.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }
        return tipodecomportamento;
    }

    @Override
    public List<TipoDeComportamento> listarTodos() {

        String sql = "SELECT * FROM TIPODECOMPORTAMENTO";

        List<TipoDeComportamento> listadostiposdecomportamentos = new ArrayList<TipoDeComportamento>();

        try {

            pstm = abrirConexaoComBD().prepareStatement(sql);

            ResultSet lista = pstm.executeQuery();

            while (lista.next()) {

                TipoDeComportamento tipodecomportamento = new TipoDeComportamento();

                tipodecomportamento.setCodigotipo(lista.getInt("CODIGO"));

                tipodecomportamento.setDescricao(lista.getString("DESCRICAO"));

                listadostiposdecomportamentos.add(tipodecomportamento);

            }

            pstm.close();
            lista.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }

        return listadostiposdecomportamentos;
    }

    public boolean pesquisarSeExisteOTipoDeComportamento(TipoDeComportamento tipodecomportamento) {

        boolean teste = false;

        List<TipoDeComportamento> lista = listarTodos();

        for (TipoDeComportamento tipo : lista) {

            if (tipo.getCodigotipo().equals(tipodecomportamento.getCodigotipo())) {
                teste = true;

            }

        }

        return teste;

    }

}
package Persistencia;

import Entidades.Comportamento;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Augusto
 */
public class ComportamentoDAO extends Conexao implements InterFaceDAO<Comportamento> {
    
 TipoDeComportamentoDAO daotipodecomportamento = new TipoDeComportamentoDAO();

    @Override
    public void salvar(Comportamento comportamento) {
        if (pesquisarSeExisteOComportamento(comportamento)) {

            System.out.print("Já existe o comportamento cadastrado com este Código no Banco de Dados. ");

            System.out.println("( " + comportamento.getCodigo() + " | " + buscarPorID(comportamento.getCodigo()).getDescricao() + " )");

        } else {

            String sqlInsert = "INSERT INTO COMPORTAMENTO ("
                    + "CODIGODOCOMPORTAMENTO, " 
                    + "DESCRICAO, " 
                    + "TIPODECOMPORTAMENTO )"
                    + "VALUES (?,?,?);";

            try {
                pstm = abrirConexaoComBD().prepareStatement(sqlInsert);

                pstm.setInt(1, comportamento.getCodigo());
                pstm.setString(2, comportamento.getDescricao());
              
              // AQUI ---------------------------------------------------------------------------------------------------------------------------------
                pstm.setInt(3, comportamento.getTipodocomportamento().getCodigotipo());
              // AQUI ---------------------------------------------------------------------------------------------------------------------------------

                pstm.execute();
                pstm.close();

                fecharConexaocomBD();

            } catch (SQLException e) {

                e.printStackTrace();
            }

        }

    }

    @Override
    public void deletar(Comportamento entidade) {

        String sqlDeletar = "DELETE FROM COMPORTAMENTO WHERE CODIGO = ?";

        try {

            pstm = abrirConexaoComBD().prepareStatement(sqlDeletar);
            pstm.setInt(1, entidade.getCodigo());

            pstm.execute();
            pstm.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    @Override
    public void update(Comportamento entidade) {

        String sql = "UPDATE COMPORTAMENTO SET " + "CODIGO=?, " + "DESCRICAO=?, " + "TIPODECOMPORTAMENTO=? " + "WHERE CODIGO=?";

        try {

            pstm = abrirConexaoComBD().prepareStatement(sql);
            pstm.setInt(1, entidade.getCodigo().get);
            pstm.setString(2, entidade.getDescricao());
            pstm.setInt(3, entidade.getTipodocomportamento().getCodigotipo());
            pstm.execute();
            pstm.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }

    }

    public Comportamento buscarPorID(Integer id) {

        String sqlPesquisarPorId = "SELECT * FROM COMPORTAMENTO WHERE CODIGO = ?";
        Comportamento comportamento = new Comportamento();

        try {

            pstm = abrirConexaoComBD().prepareStatement(sqlPesquisarPorId);
            pstm.setInt(1, id);
            ResultSet lista = pstm.executeQuery();

            while (lista.next()) {

                comportamento.setCodigo(lista.getInt("CODIGO"));
                comportamento.setDescricao(lista.getString("DESCRICAO"));
                comportamento.setTipodocomportamento(daotipodecomportamento.buscarPorID(lista.getInt("TIPODECOMPORTAMENTO")));

            }

            pstm.close();
            lista.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }
        return comportamento;

    }

    public List<Comportamento> listarTodos() {

        String sql = "SELECT * FROM COMPORTAMENTO";

        List<Comportamento> listadecomportamentos = new ArrayList<Comportamento>();

        try {

            pstm = abrirConexaoComBD().prepareStatement(sql);

            ResultSet lista = pstm.executeQuery();

            while (lista.next()) {

                Comportamento comportamento = new Comportamento();

                comportamento.setCodigo(lista.getInt("CODIGO"));

                comportamento.setDescricao(lista.getString("DESCRICAO"));

                comportamento.setTipodocomportamento(daotipodecomportamento.buscarPorID(lista.getInt("TIPODECOMPORTAMENTO")));

                listadecomportamentos.add(comportamento);

            }

            pstm.close();
            lista.close();
            fecharConexaocomBD();

        } catch (SQLException e) {

            e.printStackTrace();
        }

        return listadecomportamentos;
    }

    public boolean pesquisarSeExisteOComportamento(Comportamento comportamento) {

        boolean teste = false;

        List<Comportamento> lista = listarTodos();

        for (Comportamento tipo : lista) {

            if (tipo.getCodigo().equals(comportamento.getCodigo())) {

                teste = true;

            }

        }

        return teste;

    }

}

Não estou sabendo como funciona para extrair a sintaxe da entidade. colocar esse segundo get se alguém sobre onde tem uma explicação. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou escrevendo um Sistema em JAVA Web e estou encontrando um problema para fazer Paginação.

      O sistema informa o Limite de registro por página, mas não mostra abaixo da tabela a paginação.

      Alguém pode me ajudar ?

      Posto o Código abaixo.

      Controller - Servlet
       
      package br.com.rc.controlador; import br.com.rc.modelo.Cargo; import br.com.rc.modelo.dao.CargoDAO; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet */ public class srvCargos extends HttpServlet { private CargoDAO crgDao = new CargoDAO(); private final String pagListar = "/views/cargos/cargos.jsp"; private final String pagNovo = "/views/cargos/cargoNovo.jsp"; private final String pagEditar = "/views/cargos/cargoEditar.jsp"; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String accion = request.getParameter("accion"); switch (accion) { case "listarCargos": listarCargos(request, response); break; default: throw new AssertionError(); } } protected void listarCargos(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); int paginaActual = 1; int registrosPorPagina = 5; // Qtde por Tabela if (request.getParameter(pagListar) != null) { paginaActual = Integer.parseInt(request.getParameter(pagListar)); } int offset = (paginaActual - 1) * registrosPorPagina; List<Cargo> lista = crgDao.ListarTodos(offset, registrosPorPagina); int totalRegistros = crgDao.contarTotal(); int totalPaginas = (int) Math.ceil((double) totalRegistros / registrosPorPagina); request.setAttribute("cargos", lista); request.setAttribute("totalPaginas", totalPaginas); request.setAttribute("paginaAtual", paginaActual); request.getRequestDispatcher(pagListar).forward(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }  
      Classe DAO
       
      package br.com.rc.modelo.dao; import br.com.rc.config.Conexion; import br.com.rc.modelo.Cargo; import java.sql.*; import java.util.ArrayList; import java.util.List; /** * Classe DAO */ public class CargoDAO { private Connection cn = null; private PreparedStatement ps = null; private ResultSet rs = null; private int noOfRecords; public ArrayList<Cargo> ListarTodos(int offset, int noOfRecords) { ArrayList<Cargo> lista = new ArrayList<>(); try { cn = Conexion.getConnection(); String sql = "select * from Cargo ORDER BY nombreCargo ASC limit " + offset + ", " + noOfRecords; ps = cn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { Cargo obj = new Cargo(); obj.setIdCargo(rs.getInt("idCargo")); obj.setNombreCargo(rs.getString("nombreCargo")); obj.setEstado(rs.getBoolean("estado")); lista.add(obj); } } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (cn != null) { cn.close(); } if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (Exception ex) { } } return lista; } public int contarTotal() { String sql = "Select Count(*) From Cargo"; try (PreparedStatement ps = cn.prepareStatement(sql)) { ResultSet rs = ps.executeQuery(); if (rs.next()) return rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return 0; } public int getNoOfRecords() { return noOfRecords; } }
      Página JSP
      caminho: \web\views\cargos\cargos.jsp
      <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <jsp:include page="../../estilo/header.jsp" /> <jsp:include page="../../estilo/menu.jsp" /> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <section class="content-header"> <h1>Página Cargos</h1> </section> <!-- Content Header (Page header) --> <section class="content-header"> <a href="srvCargos?accion=novo" class="btn btn-success"> <i class="fa fa-plus"></i> Novo Cargo </a> <ol class="breadcrumb"> <li><a href="srvCargos?accion=index"><i class="fa fa-dashboard"></i> Inicio</a></li> <li class="active">Cargos</li> </ol> </section> <section class="content"> <div class="box"> <div class="box-header with-border"> <h3 class="box-title">Lista de Cargos</h3> </div> <div class="box-body"> <div class="table-responsive" > <table class="table table-bordered table-striped dataTable table-hover" id="tablaCargos"> <thead> <tr> <th>Código</th> <th>Descrição</th> <th>Estado</th> <th>Ação</th> </tr> </thead> <tbody> <c:forEach items="${cargos}" var="item"> <tr> <td>${item.idCargo}</td> <td>${item.nombreCargo}</td> <c:if test="${item.estado == true}"> <td><span class="badge bg-green active">Ativo</span></td> </c:if> <c:if test="${item.estado == false}"> <td><span class="badge bg-red active">Inativo</span></td> </c:if> <td> <a href="srvCargos?accion=buscar&id=${item.idCargo}" class="btn btn-info btn-sm"> <i class="fa fa-edit"></i> </a> <a href="srvCargos?accion=eliminar&id=${item.idCargo}" onclick="return confirm('Deseja Realmente Excluir o Cargo com id ${item.idCargo}')" class="btn btn-danger btn-sm"> <i class="fa fa-trash"></i> </a> </td> </tr> </c:forEach> <c:if test="${cargos.size() == 0}"> <tr class="text-center"> <td colspan="6">Nenhum Registro Enconrado.</td> </tr> </c:if> </tbody> </table> <!--Aqui está o erro ===> a parte de Navegação não mostra--> <nav> <ul class="pagination"> <c:if test="${paginaActual > 1}"> <li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual - 1}">Anterior</a></li> </c:if> <c:forEach var="i" begin="1" end="${totalPaginas}"> <li class="page-item ${i == paginaActual ? 'active' : ''}"> <a class="page-link" href="srvCargos?accion=listarCargos?page=${i}">${i}</a> </li> </c:forEach> <c:if test="${paginaActual < totalPaginas}"> <li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual + 1}">Siguiente</a></li> </c:if> </ul> </nav> </div> </div> </div> </section> <!-- /.content --> </div> <!-- /.content-wrapper --> <jsp:include page="../../estilo/footer.jsp" />
      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, alguém pode me dar uma explicação referente o Template AdminLTE + Java Netbeans.

      Após importar para o Sistema Web. o componente para a pasta:
      WEB PAGES
      |___> bower_components - fica apresentando ERRO em algumas subpastas.

      Como consigo corrigir esses erros ?

      At.te,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida em Sistema WEB em Java.

      O Código abaixo está na Página index.jsp
      <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> </html>
      O problema são os caracteres especiais que não consigo corrigir.

      Como consigo converter os Caracteres para o Padrão Português(BR) ?

      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.