15 de setembro de 2010

JavaEE 5: CRUD com JSP e Servlet - Parte I

Este é um exemplo de uma inserção de uma categoria qualquer...
Com o eclipse todo configurado(aula do dia 04/08/2010), vamos criar um projeto web:
No Eclipse vá em File - New - Dynamic Web Project

Depois de criar o projeto, vamos configurar a aplicação para conectar ao banco de dados MySQL, para que isso ocorra precisaremos do driver JDBC para MySQL encontrado em: http://dev.mysql.com/downloads/connector/j/ 
Agora vamos adicionar o driver ao projeto:


Explicando a imagem acima:
1. Clique com o botão direito do mouse sobre o projeto criado, e já em "Properties"
2. Na janela que vai aparecer, clique em "Java Build Path"
3. Já para a aba "Libraries"
4. Clique em "Add External JARs"
5. Localize o driver JDBC que foi baixado, e o selecione
6. Clique em "OK"


Explicando a outra imagem:
1. Verifique que o .jar tenha sido adicionado as bibliotecas
2. Confirme a operação clicando em "OK"

Bom... agora já temos nosso projeto configurado para acessar o banco de dados!
No MySQL vamos criar um database chamado "tads", dentro deste uma tabela chamada Categoria, segue o codigo SQL:
create table Categoria (
codigo int(10) unsigned not null auto_increment,
nome varchar(45), primary key (codigo))
Esta será a estrutura final deste projeto:

1. Temos o projeto ProjetoJsp, Dentro de "Java Resources: src" temos os pacotes: control, model e dao
2. No pacote control, guardamos nossos servlets
3. No pacote dao, guardamos tudo o que é relacionado ao banco de dados, ex: o arquivo Conexao.java (responsável por fazer a conexão com o BD)
4. No model, encontramos nossas classes de modelo.
5. A pasta WebContent é a pasta onde ficam nossos arquivos .jsp, esses são os arquivos que o usuário tem acesso.

Agora vamos iniciar a implementação do mesmo...
1. dentro de "Java Resources: src" criamos  um pacote model, dentro dela criamos uma classe Categoria.java.

Nela temos os atributos codigo e nome, lembre-se de implementar os getters e setters...

2. dentro de "Java Resources: src" criamos  um pacote  dao, dentro dele criamos uma classe Conexao.java, que será nosso arquivo de conexão com o BD.

Neste arquivo temos atributos como: driver, url, usuario e senha.

public Conexao() - este é o construtor da nossa classe Conexao.java, quando fazemos new Conexao(); estaremos executando este método, que está sendo responsável por criar a conexão com o banco;
public Connection getConn() - método para pegar a conexão;
public void fecharConexao() - sempre que uma conexão for aberta, depois de fazermos as operações que desejamos, devemos fechá-la;

3. Agora ainda dentro do pacote dao, criaremos uma nova classe Categoria_DAO.java

Nesta classe criamos inicialmente dois métodos:
public String inserir(Categoria categoria) - método que insere a categoria no banco de dados.
public List listar() - método responsável por carregar  e retornar uma lista de categorias, será utilizada para mostrar as categorias inseridas.

4. dentro de "Java Resources: src" criamos mais um pacote chamado control, onde ficarão nossos servlets. Agora vamos criar o servlet InserirCategoria.java, para isso: clique com o botão direito do mouse no pacote control - new - Servlet .
Apenas o método doPost será implementado, como na imagem acima.

5. Na pasta WebContent vamos criar agora nossa página JSP para inserir a categoria: Clique com o botão direito do mouse na pasta WebContent - new - JSP, informe o nome inserirCategoria.jsp

Implemente o inserirCategoria.jsp de acordo com a imagem acima, ao ser criado pelo eclipse, várias informações já vem presentes nela, então, o que realmente será implementado é o form.

6. Ainda no WebContent vamos criar nossa página incial, do mesmo jeito que foi criado a página inserirCategoria.jsp, crie uma página index.jsp

Esta deve ser implementada como a imagem acima, fique atento aos detalhes.
Observe que existem umas tags <% , estas são utilizadas para colocar códigos Java dentro de nossas páginas JSP's.

Executando nossa aplicação: 
Lembre-se de adicionar o projeto no JBoss, o mesmo deve estar como a imagem abaixo:

Caso não esteja assim, clique com o botão direito em JBoss 6.0 Runtime Server - Add and Remove - Selecione o projeto e clique em add.
Inicie o JBoss, depois de iniciado, digite no navegador : 
http://localhost:8080/ProjetoJsp
o resultado deverá ser o seguinte:

Obs: a tabela aparecerá vazia, neste caso já haviam dados no banco.

Ao clicar no link de Inserir Categoria na página index.jsp, a mesma deverá aparecer:
Ao inserir uma categoria com sucesso, a página é retornada para a index.jsp.

Bom... este é o básico para aplicações web com java!

Obs: caso ocorra alguma exceção do tipo ClassNotFoundException relacionada ao JDBC, cole o mesmo driver JDBC utilizado na aplicação dentro do seu servidor de aplicação: jboss-6.0.0 - server - default - deploy

=)

7 comentários:

  1. Parabéns! Era o que eu precisava simples e didático!

    ResponderExcluir
  2. Olá bom dia
    Gostei bastante do post, estava implementando tá listando do bando tudo certinho mais o inserir nao está, gostaria de ver a class Servlet InserirCategoria.java
    protected void doPost(HttpServletRequest request, HttpServletResponse response)

    ResponderExcluir
    Respostas
    1. Por: Cristiano Gley.

      Bom dia Marco.

      Estava com o mesmo problema. O meu problema era um "(" parêntese a mais na linha:

      stmt.execute("INSERT INTO cadcliente (Nome) VALUES ('"+categoria.getNome()+"')");

      que se encontra no Categoria_DAO.

      Excluir
  3. Perfeito!

    Pra quem deseja aprender operações básicas de inserção com banco de dados usando JSP + Mysql este tutorial é muito simples! Recomendo!

    ResponderExcluir

Deixe seu comentário... ;)