Problemas com a Classe DAO

2 respostas
M

Salve Pessoal, eu gostaria de uma ajuda.
A duvida é a seguinte:
>> Função CADASTRO <<
Bem eu tenho uma pagina em JSP,
1 - A pessoa faz o cadastro (Pagina JSP)
2 - Ele manda para o Controlador atraves de parametro
3 - Depois o controlador envia para a classe UsuarioDAO (a classe que faz a operação do banco de dados)
ate ai ta tudo bem,.
A bronca e a seguinte: os dados da pagina, chegam no controlador, mas quando passa do controlador para o UsuarioDAO, ele passa os valores NULL.

*** Por que ele passa NULL, do Controlador para o usuarioDAO.

Segue em baixo os codigos

>> CONTROLADOR << (Servlet)

package br.com.millenniumweb.web;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.util.Vector;

import br.com.millenniumweb.modelo.usuario.dao.UsuarioDao;

import br.com.millenniumweb.modelo.usuario.le.Usuario;
public class Controlador extends HttpServlet {

private static final String CONTENT_TYPE = text/html;

//Initialize global variables

public void init() throws ServletException {

}

//Process the HTTP Get request

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doProcessRequest(request,response);

}

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doProcessRequest(request, response);

String base = /jsp/;

String url = base + index.jsp;

String action = request.getParameter(action);

System.out.println("Action: " + action);

}

public void doProcessRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String base = /jsp/;

String url = base + index.jsp;

String action = request.getParameter(action);

System.out.println("Action: " + action);
String acao = request.getParameter(acao);

if (acao==null) {

throw new ServletException(A acao de comando nao foi especificada!);

}

if (acao.equalsIgnoreCase(“usuario.novo”)) {

Usuario usuario = new Usuario();

System.out.println("***** ATENÇÃO **** “);

System.out.println(request.getParameter(“id_perm”));

System.out.println(”***** NOME **** “);

System.out.println(request.getParameter(“Nome_Usuario”));

System.out.println(”***** Apelido **** “);

System.out.println(request.getParameter(“Apelido_Usuario”));

System.out.println(”***** Senha **** “);

System.out.println(request.getParameter(“Senha_Usuario”));

System.out.println(”***** Nivel **** ");

System.out.println(request.getParameter(nivel_usuario));

usuario.setId_perm(Integer.valueOf(request.getParameter(“id_perm”)).intValue());
// usuario.setId_perm(request.getParameter(“id_perm”));

usuario.setNome_Usuario(request.getParameter(nome_usuario));

usuario.setApelido_Usuario(request.getParameter(apelido_usuario));

usuario.setSenha_Usuario(request.getParameter(senha_usuario));

usuario.setNivel_Usuario(request.getParameter(nivel_usuario));
System.out.println("***** ATENÇÃO esse e a segunda Não DAO**** “);

System.out.println(request.getParameter(“id_perm”));

System.out.println(”***** NOME 2 **** “);

System.out.println(request.getParameter(“Nome_Usuario”));

System.out.println(”***** Apelido 2 **** “);

System.out.println(request.getParameter(“Apelido_Usuario”));

System.out.println(”***** Senha 2**** “);

System.out.println(request.getParameter(“Senha_Usuario”));

System.out.println(”***** Nivel 2 **** ");

System.out.println(request.getParameter(nivel_usuario));
if (UsuarioDao.criarUsuario(usuario)) {

request.getSession(true).setAttribute(tipomsg,sucesso);

request.getSession(true).setAttribute(msg,Usuario + usuario.getNome_Usuario()+

 foi salvo com Sucesso!
);

response.sendRedirect(msg.jsp);

}

}
if(acao.equalsIgnoreCase(usuario.consulta)) {

String campo = request.getParameter(campo);

String valor = request.getParameter(valor);

int tipo = Integer.parseInt( request.getParameter(tipo));
Vector usuariosRetornados = UsuarioDao.consultaUsuarios(campo,valor,tipo);

if (usuariosRetornados.size()>10) {

request.getSession(true).setAttribute(usuarios,usuariosRetornados);

response.sendRedirect(consulta_usr_retorno.jsp);

}

else {

request.getSession(true).setAttribute(tipomsg, falha);

request.getSession(true).setAttribute(msg, Não houveram usuarios encontrados);

response.sendRedirect(msg.jsp);

}

}

}

//Clean up resources

public void destroy() {

}

}

>> CLASSE USUARIODAO <<

package br.com.millenniumweb.modelo.usuario.dao;

import br.com.millenniumweb.bd.util.StandardConnection;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.*;

import java.util.Vector;

import br.com.millenniumweb.modelo.usuario.le.Usuario;
public class UsuarioDao {

protected static Connection conn = null;

public static final int PESQUISA_INICIAL=1;

public static final int PESQUISA_CONTEM=2;

public static final int PESQUISA_TERMINA=3;

public static final int PESQUISA_EXATO=4;
protected static void setup(){

if (conn==null) {

try {

conn = StandardConnection.getInstance().getConnection();

}

catch (Exception ex) {

ex.printStackTrace();

}

}

}
public static boolean criarUsuario(Usuario usuario) {

PreparedStatement ps = null;

System.out.println("<><>><<><><>><ATENCAO DAO ANTES ");

System.out.println(Id: + usuario.getId_perm());

System.out.println(Nome: + usuario.getNome_Usuario());
try {

setup();

ps = conn.prepareStatement

//(“INSERT INTO GC_PERMISSAO VALUES(?,?,?,?,?,?)”);

(INSERT INTO GC_PERMISSAO (Id_perm, Nome_Usuario, Apelido_Usuario, Senha_Usuario, Nivel_Usuario) VALUES (?,?,?,?,?));
System.out.println(AQUI é o TESTE do PS);

System.out.println(ps);

// ps.setInt (1,0);

ps.setInt (1, usuario.getId_perm());

ps.setString (2, usuario.getNome_Usuario());

ps.setString (3, usuario.getApelido_Usuario());

ps.setString (4, usuario.getSenha_Usuario());

ps.setInt (5, usuario.getNivel_Usuario());
System.out.println(ATENCAO DAO <> <> <> <>);

System.out.println(Id: + usuario.getId_perm());

System.out.println(Nome: + usuario.getNome_Usuario());
ps.execute();

return true;

}

catch (SQLException ex) {

ex.printStackTrace();

return false;

}

finally {

try {

ps.close();

}

catch (SQLException ex1) {

ex1.printStackTrace();

}

}
}

public static Vector consultaUsuarios(String campo, String valor,int tipoPesquisa) {

String sql = null;

switch (tipoPesquisa) {

case PESQUISA_INICIAL:

sql="SELECT * FROM GC_PERMISSAO ";

//sql = “SELECT * FROM GCPERMISSAO “+ campo+” like '”+valor + “%’”;

break;

case PESQUISA_CONTEM:

//sql = SELECT * FROM GCPERMISSAO WHERE + campo+ like '%”+valor + “%’”;

break;

case PESQUISA_TERMINA:

//sql = “SELECT * FROM GCPERMISSAO WHERE “+ campo+” like '%+valor + “’”;

break;

case PESQUISA_EXATO:

//sql = SELECT * FROM GCPERMISSAO WHERE + campo+=’”+valor + “’”;

break;

}

setup();

try {

Statement qry = conn.createStatement();

ResultSet rs = qry.executeQuery(sql);
Vector retorno = new Vector();

Usuario usuario = null;

while (rs.next()) {

usuario = new Usuario();

usuario.setId_perm(rs.getInt(1));

// usuario.setId_perm(new Integer(rs.getInt(1)));

usuario.setNome_Usuario(rs.getString(2));

usuario.setApelido_Usuario(rs.getString(3));

usuario.setSenha_Usuario(rs.getString(4));

usuario.setNivel_Usuario(rs.getString(5));

retorno.add(usuario);
}

return retorno;

}

catch (SQLException ex) {

ex.printStackTrace();

return null;

}

}

}

atenciosamente


Abraços
Marcus Paulo

2 Respostas

pcalcado

Marcus,

Não encontrei anda demais passando os olhos pelo código. Você tem certeza que está chegando lá, que o objeto usuário está sendo criado?

Dicas:

1 - Use a tag code do forum, simplifica muito o codigo
2 - Siga as convenções de nomenclatura da linguagem

[]s

M

Olá, muito obrigado pela sua atenção, o problema realmente não era no controlador e nem na classe Dao e sim, o Name e ID dos campos da pagina JSP.

Muito obrigado

abraços

Marcus Paulo

Criado 13 de agosto de 2004
Ultima resposta 13 de ago. de 2004
Respostas 2
Participantes 2