CRUD GERAL E LOGIN Sumário

Propaganda
CRUD GERAL E LOGIN
Sumário
CRUD ............................................................................................................................................................................. 2
O que é CRUD? .......................................................................................................................................................... 2
Criando as classes que fazem parte do CRUD ........................................................................................................... 2
Busca Dados Geral ...................................................................................................... Erro! Indicador não definido.
Insert Geral................................................................................................................................................................ 3
Update Geral ............................................................................................................... Erro! Indicador não definido.
Delete Geral .............................................................................................................................................................. 6
Recuperar ID do último registro inserido.................................................................... Erro! Indicador não definido.
Lista Geral.................................................................................................................... Erro! Indicador não definido.
Construindo um arquivo de CRUD, exemplo crudnoticia.JSP ......................................... Erro! Indicador não definido.
1
CRUD GERAL E LOGIN
CRUD
Uma área administrativa compreende em áreas para gerenciar conteúdos que existem no banco de dados, no
nosso projeto temos duas tabelas no banco de dados, TEXTOS e NOTICIAS.
Então iremos criar nesse capítulo um CRUD que atenda a todas as áreas administrativas internas, com isso, você
sozinho conseguirá fazer o da tabela de usuários que terá acesso a esse site.
O que é CRUD?
Mas falamos de CRUD, o que seria um CRUD?
Consiste numa única aplicação que LISTE, INSERA, ALTERE e EXCLUA registros no banco de dados.
A abreviação CRUD mapeada para o padrão ISO/SQL é:
Create INSERT
Retrieve (Read) SELECT
Update UPDATE
Destroy (Delete) DELETE
Ou seja, nessa aplicação teremos as seguintes instruções SQL: SELECT, INSERT, UPDATE e DELETE.
Sendo assim, o SELECT será a listagem dos registros paginados, algo que já fizemos anteriormente.
O INSERT será inserção de registros no banco de dados através de um formulário.
O UPDATE será alteração desses registros no banco de dados também através de um formulário.
E o DELETE será a exclusão desse registro no banco de dados.
Criando as páginas que fazem parte do CRUD
Crie uma pasta que irá abrigar o CRUD da tabela que for trabalhar. Exemplo notícias.
Dentro dela tem que ter 4 arquivos.
Index.jsp = responsável por listar os registros da tabela e dar acesso para o
cadastro, alteração e exclusão do registro.
Cadastra.jsp = responsável por cadastrar no banco de dados
altera.jsp = responsável por alterar o registro no banco de dados
excluir.jsp = responsável por excluir o registro no banco de dados
2
CRUD GERAL E LOGIN
I NDEX.JSP
Nesse arquivo iremos listar os registros para alteração e exclusão e também teremos o botão incluir.
Segue abaixo o script detalhado
String content = "";//cria variável contente que ira armazenar a lista
content = "<h2>Notícias</h2>";
content += "<div align=\"center\"><input type=\"button\" class=\"botoes\"
value=\"Cadastrar\" onclick=\"location.href='cadastra.jsp'\" /></div>";
//codigo acima referente ao botão de incluir registros ele aponta para o
arquivo de inserção de dados
content += "<table width=\"100%\" border=\"0\">";
content += "<tr>";
content += "<th>Titulo</th>";
content += "<th></th>";
content += "<th></th>";
content += "</tr>";
//código acima cria a estrutura da tabela
rs = statement.executeQuery("SELECT * FROM noticia order by not_id DESC");
//código acima é uma string do banco de dados
String zebra = "zebra1";
while (rs.next()) {
if(zebra == "zebra1"){
zebra = "zebra2";
}else{
zebra = "zebra1";
}
// esse script acima, visa listar os dados zebrado
3
CRUD GERAL E LOGIN
content += "<tr>";
content += "<td class=\""+zebra+"\">" + rs.getString("not_titulo")+
"</td>";
content += "<td class=\""+zebra+"\"><a href=\"altera.jsp?not_id=" +
rs.getInt("not_id")+ "\">Alterar</a></td>";
content += "<td class=\""+zebra+"\"><a href=\"excluir.jsp?not_id=" +
rs.getInt("not_id")+ "\">Excluir</a></td>";
content += "</tr>";
//esse trecho é responsável por listar os registros e criar o link para o
arquivo de alteração e exclusão
}
//saio do loop e fecho a tabela
content += "</table>";
rs.close();
%>
<%@ include file="/template/admin.html" %> //incluo o template
CADASTRA.JSP
Nesse arquivo iremos construir dois trechos de script, a primeira parte onde o tem o formulário e depois a
inserção no banco de dados.
Ao clicar no botão de cadastrar irá para o formulário abaixo.
Esse formulário estará dentro da pasta templates, e terá variáveis no value de cada campo que no cadastro
serão vazias e na alteração virão preenchidas.
Portanto é necessário declarar variável por variável tanto no cadastra quanto no altera.
Segue o código comentado:
<%@ include file="/inc/conecta.jsp" %>
<%
//abaixo declaramos variaveis por variaveis do banco de dados
String content = "";
String not_titulo = "";
String not_subtit = "";
4
CRUD GERAL E LOGIN
String not_data = "";
String not_texto = "";
String not_fonte = "";
String not_key = "";
String cod = "cadastra";//atribuo valor ao cod que fará formulário
funcionar tanto para inserir quanto alterar
int not_id = 0;
if(request.getParameter("cod")!=null ) {
/*verifico se a variavel cod foi passada na URL, se sim
Crio a string sql que irá inserir os registros no banco de dados
Depois preparo a string para inserção no banco através de prepareStatement
e executeUpdate()
*/
String sql = "insert into noticia
(not_titulo,not_subtit,not_data,not_texto,not_fonte,not_key) VALUES
('"+request.getParameter("not_titulo")+"','"+request.getParameter("not_subt
it")+"','"+request.getParameter("not_data")+"','"+request.getParameter("not
_texto")+"','"+request.getParameter("not_fonte")+"','"+request.getParameter
("not_key")+"')";
PreparedStatement st = connection.prepareStatement(sql);
st.executeUpdate();
//as linhas abaixo sao para redirecionar para a lista
String site = new String("index.jsp");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
statement.close();
}
%>
//inclui template de formulário
<%@ include file="/template/cadnoticia.html" %>
ALTERA.JSP
Assim que clicar em alterar na lista entrará no formulário já preenchido com os dados do banco de dados, como
mostra a figura abaixo.
5
CRUD GERAL E LOGIN
Assim como o arquivo de inserção iremos construir dois trechos de script, a primeira parte onde o tem o
formulário e depois a alteraçãono banco de dados.
Ao clicar no botão de cadastrar irá para o formulário abaixo.
Repare que o script abaixo é bem similar ao script da inserção, porém construindo a instrução updade no banco
de dados.
Veja abaixo como são os mesmos princípios com pequenas alterações.
String content = "";
String not_titulo = "";
String not_subtit = "";
String not_data = "";
String not_texto = "";
String not_fonte = "";
String not_key = "";
String cod = "";
int not_id = 0;
if(request.getParameter("cod")!=null ) {
//até aqui os scripts são indenticos, somente abaixo a query de update
String sql = "UPDATE noticia SET
not_titulo='"+request.getParameter("not_titulo")+"',not_subtit='"+request.g
etParameter("not_subtit")+"',not_data='"+request.getParameter("not_data")+"
',not_texto='"+request.getParameter("not_texto")+"',not_fonte='"+request.ge
tParameter("not_fonte")+"',not_key='"+request.getParameter("not_key")+"'
WHERE not_id='"+request.getParameter("not_id")+"'";
PreparedStatement st = connection.prepareStatement(sql);
st.executeUpdate();
String site = new String("index.jsp");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
statement.close();
//nesse script temos o else
}else{
6
CRUD GERAL E LOGIN
//que ira criar variaveis com a consulta abaixo do banco de dados, por isso
o formulário vem preenchido
rs = statement.executeQuery("SELECT * FROM noticia where
not_id='"+request.getParameter("not_id")+"'");
rs.next();
not_titulo = rs.getString("not_titulo");
not_subtit = rs.getString("not_subtit");
not_data = rs.getString("not_data");
not_texto = rs.getString("not_texto");
not_fonte = rs.getString("not_fonte");
not_key = rs.getString("not_key");
not_id = rs.getInt("not_id");
cod = "altera";
}
%>
<%@ include file="/template/cadnoticia.html" %>
Formulário de Inserção e Alteração
Num único formulário dá para fazer a inserção e alteração segue abaixo o script explicado.
A variável COD irá definir se será alteração ou cadastro.
Todos os campos tem VALUE preenchido com as variáveis declaradas, dessa maneira se o formulário for de cadastro
as variáveis vem vazias, alteração preenchidas.
E um último campo do tipo HIDDEN com o ID do registro a ser alterado e caso seja inserção virá com o valor 0.
<form action="<%= cod %>.jsp?cod=<%= cod %>" method="post">
<fieldset>
<label>Título:</label> <input type="text" id="not_titulo" name="not_titulo"
value="<%=not_titulo%>" size="50" class="campos" /><br />
<label>Sub-titulo:</label> <input type="text" id="not_subtit"
name="not_subtit" value="<%=not_subtit%>" class="campos" size="50" /><br />
<label>Data:</label> <input type="text" id="not_data" name="not_data"
size="12" value="<%=not_data%>" mexlength="12" /> <br />
<label>Texto:</label> <textarea name="not_texto" id="not_texto" cols="50"
rows="5" class="campos"><%=not_titulo%></textarea><br />
<label>Fonte:</label> <input type="text" id="not_fonte" name="not_fonte"
class="campos" value="<%=not_fonte%>" size="50" /><br />
<label>Palavras-Chaves:</label> <input type="text" id="not_key"
name="not_key" value="<%=not_key%>" class="campos" size="50" /><br />
<input type="hidden" name="not_id"
value="<%=not_id%>" />
<label></label> <input type="submit" value="Enviar" class="botoes" />
</fieldset>
7
CRUD GERAL E LOGIN
</form>
DELETE.JSP
Ele é muito parecido com os scripts de inserir e alterar, porém não tem a parte do formulário. Veja o script
abaixo:
int not_id;
//string sql de exclusão do registro no banco de dados
String sql = "delete from noticia WHERE
not_id='"+request.getParameter("not_id")+"'";
out.println(sql);
PreparedStatement st = connection.prepareStatement(sql);
st.executeUpdate();
String site = new String("index.jsp");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
statement.close();
Pronto com esses 4 passos teremos um CRUD da tabela notícias.
8
Download