I have created a JSP page called TelaAreaCurso where it is composed of two grids, the one on the left is a form with the form and the one on the right a table that lists all the areas of the course registered.
Below is the page described:
<%-- IMPORTS DO SISTENA --%>
<%@page import="java.util.ArrayList" %>
<%@page import="java.util.List" %>
<%@page import="thoth.modelo.bean.AreaCurso" %>
<%@page import="thoth.modelo.dao.AreaCursoDao" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE-edge">
<title>Gerenciador de Áreas do Curso</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="bootstrap/css/estilo.css" rel="stylesheet">
<link href="bootstrap/js/javascript.js" rel="stylesheet">
<link href="bootstrap/imagem/imagem_thoth.jpeg" rel="icon">
<style>
/* PÕE A BARRA DE ROLAGEM VERTICAL NA TABELA LOCAL */
.table-overflow {
max-height:400px;
overflow-y:auto;
}
</style>
<!-- SCRIPT RESPONSÁVEL POR APAGAR OS CAMPOS -->
<script id="apaga_campos">
document.getElementById('cx_codigo').value=''; // Limpa o campo
document.getElementById('cx_nome').value=''; // Limpa o campo
</script>
</head>
<body>
<!-- CABEÇALHO DA PÁGINA -->
<nav class="navbar navbar-dark bg-success">
<div class="col-sm-5">
<img src="bootstrap/imagem/imagem_thoth_logo.jpeg" height="80" width="80" class="img-circle img-responsive">
</div>
<div class="col-sm-7" >
<h1>Área do Curso</h1>
</div>
</nav>
<div class="container-fluid">
<div class="col-sm-6"> <!-- COLUNA 1 DA PÁGINA -->
<h2>Áreas do Curso</h2> <!-- TÍTULO -->
<form action="AreaCurso_Cadastro_Controle" method="post">
<div class="form-group"> <!-- agrupará e vai separar o label do campo e dos demais -->
<!-- campo código -->
<label for="cx_codigo">Código:</label>
<input class="form-control" type="number" name="cx_codigo" id="cx_codigo" size="4" maxlength="4" placeholder="0" disabled>
</div>
<div class="form-group"> <!-- agrupará e vai separar o label do campo e dos demais -->
<!-- campo nome -->
<label for="cx_nome">Nome:</label>
<input class="form-control" type="text" name="cx_nome" id="cx_nome" size="50" maxlength="50" placeholder="Informe a descrição da área" autofocus required>
</div>
<div class="form-group"> <!-- agrupará e vai separar o label do campo e dos demais -->
<!-- botão salvar-->
<input type="submit" value="Salvar" id="salvar" name="salvar" class="btn btn-success btn-lg">
<!-- campo limpar -->
<input type="reset" value="Novo" onclick="apaga_campos" id="novo" name="novo" class="btn btn-secondary btn-lg">
</div>
</form>
<div class="alert alert-success">
<h3>${mensagem}</h3>
</div>
</div>
<div class="col-sm-6"> <!-- COLUNA 2 DA PÁGINA -->
<h1>Lista de Áreas de Cursos do Sistema</h1>
<div class="table-overflow">
<table class="table table-striped table-bordered table-hover"> <!-- TABELA -->
<thead class="success"> <!-- O CABEÇALHO DA TABELA -->
<td class="success">Código</td>
<td class="success">Descrição</td>
<td class="success"></td> <!-- BOTÃO ALTERAR -->
<td class="success"></td> <!-- BOTÃO EXCLUIR -->
</thead>
<tbody>
<%-- SCRIPTLET - DECLARAÇÃO DO MÉTODO DAO RESPONSÁVEL POR LISTAR AS AREAS DO CURSO --%>
<%
List<AreaCurso> listaArea = new ArrayList<AreaCurso>();
AreaCursoDao areaDao = new AreaCursoDao();
listaArea = areaDao.listarAreaCurso();
for( AreaCurso area: listaArea ){
%>
<tr> <!-- LINHA DA TABELA -->
<td><%= area.getCodigo() %></td>
<td><%= area.getNome() %></td>
<td>
<input type="button" value="Alterar" id="alterar" name="alterar" onclick="location='http://localhost:8080/Thoth/TelaAreaCursoAlterar.jsp?codigoAlterar=<%= area.getCodigo() %>'" class="btn btn-secondary btn-sm">
</td>
<td>
<input type="button" value="Excluir" id="excluir" name="excluir" onclick="location='http://localhost:8080/Thoth/AreaCurso_Excluir_Controle?cd=<%= area.getCodigo() %>'" class="btn btn-danger btn-sm">
</td>
</tr>
<%
}
%>
</tbody>
</table>
</div>
</div>
</div>
<!-- FIM DO CÓDIGO -->
<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="bootstrap/js/script.js"></script>
</body>
</html>
I'vealreadybeenabletoregister,butnowthechallengeiswhenclickingonthebuttonchangeordeletefromthelisttheinformationofthisrelatedobjectloadinthisformtotheside.CouldsomeonehelpmewithhowIcoulddothis?
Additionalprojectinformation:
BEANCLASS
packagethoth.modelo.bean;publicclassAreaCurso{privateIntegercodigo;privateStringnome;/***@returnthecodigo*/publicIntegergetCodigo(){returncodigo;}/***@paramcodigothecodigotoset*/publicvoidsetCodigo(Integercodigo){this.codigo=codigo;}/***@returnthenome*/publicStringgetNome(){returnnome;}/***@paramnomethenometoset*/publicvoidsetNome(Stringnome){this.nome=nome;}publicStringtoString(){returnnome;}}
CLASSDAO:
packagethoth.modelo.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importthoth.modelo.bean.AreaCurso;importthoth.modelo.conexao.Conexao;publicclassAreaCursoDao{privateConnectionconn=null;//PreparaaconexãocomobancodeDadosprivatePreparedStatementps=null;//PreparaoambienteoucaminhoparaabancodedadosprivateResultSetrs=null;//EnviaasfunçõessqldaaplicaçãoparaobancoprivateStringsql="";
private List<AreaCurso> listaArea = new ArrayList<>();
/**
* Método responsável por criar o salvar as ÁREA DO CURSO.
* @param area
*/
public void salvar( AreaCurso area )
{
conn = Conexao.getConexao(); // Abri a conexão
sql = "INSERT INTO public.areacurso(area_nome)VALUES (?)";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, area.getNome() ); // Parâmetro é igual a um, pois ele só tem uma INTERROGAÇÃO
ps.execute(); // Executa ou commit o código SQL
conn = Conexao.fecharConexao();
} catch (SQLException ex) {
System.out.println("ERRO AO SALVAR - DAO AREACURSO");
}
}
/**
* Método responável por Pesquisar a AREACURSO do banco de dados.
* @param codigo
* @return
*/
public AreaCurso pesquisarAreaCurso( int codigo )
{
conn = Conexao.getConexao();
sql = "SELECT * FROM public.areacurso WHERE area_cod = ?";
AreaCurso area = null;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, codigo);
rs = ps.executeQuery();
if(rs.next()){
area = new AreaCurso();
area.setCodigo( rs.getInt("area_cod") );
area.setNome(rs.getString("area_nome"));
}
conn = Conexao.fecharConexao();
ps.close();
rs.close();
} catch (SQLException ex) {
System.out.println("Erro ao Pesquisar - DAO AREACURSO, MOTIVO: "+ex);
}
return area;
}
/**
* Método responsável por listar todas as AREACURSO do banco de dados
* @return
*/
public List<AreaCurso> listarAreaCurso(){
conn = Conexao.getConexao();
sql = "SELECT * FROM public.areacurso";
AreaCurso area = null;
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
area = new AreaCurso();
area.setCodigo( rs.getInt("area_cod") );
area.setNome( rs.getString("area_nome") );
listaArea.add(area);
}
conn = Conexao.fecharConexao();
ps.close();
rs.close();
} catch (SQLException ex) {
System.out.println("ERRO AO LISTAR - DAO AREACURSO");
}
return listaArea;
}
/**
* Método responsável por alterar dados no Banco
* @param area
*/
public void alterar( AreaCurso area ) throws SQLException
{
conn = Conexao.getConexao(); // Abri a conexão
sql = "UPDATE public.areacurso SET area_nome=? WHERE area_cod = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, area.getNome()); // Parâmetro é igual a um, pois ele só tem uma INTERROGAÇÃO
ps.setInt(2, area.getCodigo()); // Parâmetro é igual a um, pois ele só tem uma INTERROGAÇÃO
ps.executeUpdate(); // Executa ou commit o código SQL
conn = Conexao.fecharConexao();
}
/**
* Método responsável por excluir dados do banco de dados
* @param area
*/
public void excluir( AreaCurso area ) throws SQLException
{
conn = Conexao.getConexao(); // Abri a conexão
sql = "DELETE FROM public.areacurso WHERE area_cod = ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, area.getCodigo()); // Parâmetro é igual a um, pois ele só tem uma INTERROGAÇÃO
ps.execute(); // Executa ou commit o código SQL
conn = Conexao.fecharConexao();
}
}
CLASS CONNECTION:
package thoth.modelo.conexao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexao {
static Connection con = null;
private static final String URL = "jdbc:postgresql://localhost/Thoth";
private static final String USER = "postgres";
private static final String SENHA = "123";
public static Connection getConexao(){
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(URL, USER, SENHA);
// System.out.println("Conexão ok !");
} catch (Exception e) {
System.out.println("Erro na conexao !" +e.getMessage());
}
return con;
}
public static Connection fecharConexao()
{
try{
con.close();
}catch(SQLException e){
System.out.println("Erro ao fechar Conexao !" +e.getMessage());
}
return con;
}
public static void main(String[] args) {
Conexao.getConexao();
}
}
DATABASE TABLE - PSOTGRESQL
CREATE DATABASE Thoth;
CREATE TABLE areacurso(
area_cod SERIAL NOT NULL,
area_nome VARCHAR(5) NOT NULL,
PRIMARY KEY(area_cod)
);