Inserindo os dados via Servlet

2 respostas
diegocrs

Olá a todos estou querendo inserir os dados colocando no SERVLET o INSERT que eu qro…
abaixo estar o codigo:

ESSE é O SERVLET

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package SysAc.web;

import java.io.IOException;
import java.net.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;
import SysAc.dao.*;
import gamasouza.*;
import java.util.Date;
import gamasouza.*;

/**
 *
 * @author Didi
 */
public class ServletSys extends javax.servlet.http.HttpServlet {   
   
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String cmd=request.getParameter("cmd");
        if(cmd==null){
            cmd ="principal";
        }
        InterfaceSysAc dao;
    Aluno aluno = new Aluno () ;
        
        String codigo = request.getParameter("codigo");
        String nome = request.getParameter("nome");
        String rg = request.getParameter("rg");
        String cpf = request.getParameter("cpf");
        String nascimento = request.getParameter("nascimento");
        
        if(cmd==null || !cmd.equalsIgnoreCase("principal")){
            aluno.setCodigo(Integer.parseInt(codigo));
            aluno.setPessoa(nome);
            aluno.setRG(Integer.parseInt(rg));
            aluno.setCPF(Integer.parseInt(cpf));
         
                        
        }
        try
        {
            dao = new SysAcDAO();
            RequestDispatcher rd = null;
            
            /*Condição pra LISTAR as Informações*/
            if (cmd.equalsIgnoreCase("listar")){
                List pessoaList = dao.todosLivros();
                request.setAttribute("pessoaList", pessoaList);
                rd = request.getRequestDispatcher("/jCadAlunoPesq.jsp");
                
            } 
            /*Condição para salvar as Informações*/
            else if (cmd.equalsIgnoreCase("addliv")){
                SysAcDAO StrSql = new SysAcDAO();
                StrSql.setStrSQl("INSERT INTO aluno (codigo, nome, cpf, rg) VALUES ("+
                        "?, ?, ?, ?)");
                
                dao.salvar(aluno);
                rd = request.getRequestDispatcher("/sucesso.html");
            }
            
            rd.forward(request, response);
            
        }catch(Exception e)
        {
            e.printStackTrace();
            throw new ServletException(e);
        }       
    } 

}

ESSE é O MEU CLASSE DAO:

package SysAc.dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import gamasouza.*;
import java.util.List;
import SysAc.util.ConnectSysAcFactory;

public class SysAcDAO implements InterfaceSysAc {
	private Connection conn;
	private String StrSql;
        
	public SysAcDAO( ) throws SysAcDAOException{ 
        try
        {
        	this.conn = ConnectSysAcFactory.getConnection( );
   	    
    	      	
        } 
        catch( Exception e )
        {
            throw new SysAcDAOException( "Erro: " +
                                         ":\n" + e.getMessage( ) );
        }		
	}

	public void salvar(Pessoa pessoa)  throws SysAcDAOException{ 
		PreparedStatement ps = null;
		Connection conn = null;
                
		if (pessoa == null)
			throw new 
				SysAcDAOException("O valor passado não pode ser nulo");

		try {
                     Aluno aluno = new Aluno();
                    /*String SQL = "INSERT INTO aluno (codigo, Pessoa_codigo, cpf, "+ 
					"rg) " + 
					"values (?, ?, ?, ?)"; */
                     
                        String SQL = getStrSQl();
			conn = this.conn;
			ps = conn.prepareStatement(SQL);
			ps.setInt(1, aluno.getCodigo());
			ps.setInt(2, aluno.getCodigo());
			ps.setInt(3,aluno.getCPF());
                        ps.setInt(4, aluno.getRG());
			ps.executeUpdate( );

		} catch (SQLException sqle) {
			throw new  
				SysAcDAOException("Erro ao inserir dados "+ sqle);
		} finally {
			ConnectSysAcFactory.closeConnection(conn, ps);

		}
	}

 	public void excluir(Pessoa livro) throws SysAcDAOException { 
		PreparedStatement ps = null;
		Connection conn = null;
		
		if (livro == null)
			throw new 
				SysAcDAOException("O valor passado não pode ser nulo");

		try {
			conn = this.conn;
			ps = conn.prepareStatement("delete from livros where isbn=?");
			ps.setInt(1, livro.getCodigo( ));
			ps.executeUpdate( );


		} catch (SQLException sqle) {
			throw new  
				SysAcDAOException("Erro ao excluir dados:" + sqle);
	
		} finally {
			ConnectSysAcFactory.closeConnection(conn, ps);
		}

	}       
        
	public void atualizar(Pessoa pessoa)  throws SysAcDAOException 
	{
		PreparedStatement ps = null;
		Connection conn = null;

		if (pessoa == null)
			throw new 
				SysAcDAOException("O valor passado não pode ser nulo");

		try {
			/*String SQL = "UPDATE livros SET titulo=?, " + 
					" edicao_num=?, " + 
					"ano_publicacao=?, descricao=? " + 
					"where isbn=?"; */
                         String SQL = getStrSQl();
			conn = this.conn;
			ps = conn.prepareStatement(SQL);
			ps.setInt(1, pessoa.getCodigo());
			ps.setString(2, pessoa.getPessoa());
			ps.setDate(3,(Date) pessoa.getNasc());
			ps.executeUpdate( );

		} catch (SQLException sqle) {
			throw new  
				SysAcDAOException("Erro ao atualizar dados: "+ sqle);
		} finally {
			ConnectSysAcFactory.closeConnection(conn, ps);

		}
	}
        
    public List todosLivros( )  throws SysAcDAOException{ 
 		 PreparedStatement ps = null;
		 Connection conn = null;
		 ResultSet rs = null;

		try {
			conn = this.conn;
			/*ps = conn.prepareStatement("select * from livros");*/
                        ps = conn.prepareStatement(getStrSQl());
			rs = ps.executeQuery();
		    List<Pessoa> list = new ArrayList<Pessoa>();
		      while( rs.next() )
		      {
		        int codigo = rs.getInt( 1 );
		        String pessoa = rs.getString( 2 );
		        Date nasc = rs.getDate( 3 );
		        
		        list.add( new Pessoa(codigo, pessoa, nasc ) );
		        
		      }
		      return list;

		} catch (SQLException sqle) {
			throw new  SysAcDAOException(sqle);
		} finally {
			ConnectSysAcFactory.closeConnection(conn, ps, rs);
		}
	}

  public Pessoa procurarLivro(int codigo) 
		throws  SysAcDAOException
	{
		 PreparedStatement ps = null;
		 Connection conn = null;
		 ResultSet rs = null;

		try {
			conn = this.conn;
			ps = conn.prepareStatement("select * from livros where isbn=?");
			ps.setInt(1, codigo);
			rs = ps.executeQuery( );
            if( !rs.next( ) )
            {
                throw new 
							SysAcDAOException( "Não foi encontrado nenhum " +
									"registro com o ISBN: " + codigo );
            }
            
		        
                       // int codigo = rs.getInt( 1 );
                        int cod = rs.getInt( 1 );
		        String pessoa = rs.getString( 2 );
		        Date nasc = rs.getDate( 3 );
		        
		        return new Pessoa(cod, pessoa, nasc) ;

		} catch (SQLException sqle) {
			throw new  SysAcDAOException(sqle);
		} finally {
			  ConnectSysAcFactory.closeConnection(conn, ps, rs);

		}
}
  public void setStrSQl(String strSql){
      this.StrSql = strSql;
  }
  public String getStrSQl(){
      return StrSql;
  }
}

Só que ele nao deixa eu inserir os dados, diz que a VARIAVEL STRING que estar no DAO é nulo, sendo que passo o INSERT pra ele antes de inserir os dados…

Alguem pode ajudar?

2 Respostas

diegocrs

Alguem pode dar uma ajuda aí?

K

Diego,

No seu codigo que usa o DAO voce tem 2 objetos e está setando a string somente em 1. :smiley:

Criado 4 de abril de 2009
Ultima resposta 4 de abr. de 2009
Respostas 2
Participantes 2