Fórum Insert em JSP no MySQL ajuda ... #397926

24/03/2011

0

Insert em JSP no MySQL ajuda pois to com um problema toda hora dá erro eu uso o select tanquilo mas na hora do insert é uma tristeza só erros

tenho uma classe só de conexão ao banco e umas outras para cadastrar e outra para recebe este cadastro que vai efetivamente fazer o cadastro no banco (ESTA É A PÁGINA QUE ESTÁ COM ERRO)
A PÁGINA DE CONEXÃO NÃO É, POIS O SELECT FUNC

VOU PASSAR A CLASSE CONEXÃO E A PÁGINA QUE ESTÁ COM ERRO ME AJUDEM
 
private String connectionString;
    private String driverName = "com.mysql.jdbc.Driver"; //driver do MySQL
    private String database;
    private String user;
    private String password;
    private String host;
    private Connection connection = null;

    //construtor
    public Conexao(String host, String database, String user, String password) {

        this.host = host; //geralmente localhost
        this.database = database; //nome do banco
        this.user = user; //usuario do banco
        this.password = password; //senha do usuario
        //mysql usa a porta 3306
        connectionString = "jdbc:mysql://" + host + ":3306/" + database; //string de conexao
    }

    //conectar no banco
    public Connection connect() throws SQLException {
        try {
            Class.forName(this.driverName);
            //faz a conexao e retorna
            this.connection = DriverManager.getConnection(connectionString, this.user, this.password);
            return this.connection;
        }
        catch (ClassNotFoundException ex){
            throw new SQLException(ex.getMessage());
        }
        catch (SQLException ex) {
            throw new SQLException(ex.getMessage());
        }
    }

    //fecha conexao
    public void close() throws SQLException{
        try {
            connection.close();
        } catch (SQLException ex) {
            throw new SQLException(ex.getMessage());
        }
    }

}//fim conexao


e está é a que está com erro

<%
    try
    {
      String NOMEALUNO = request.getParameter("NOME");
      String ENDERECO = request.getParameter("END");
      String CIDADE = request.getParameter("CIDADE");
      String ESTADO = request.getParameter("ESTADO");
      String CEP = request.getParameter("CEP");
      String TELEFONE = request.getParameter("TELEFONE");
      String EMAIL = request.getParameter("EMAIL");
      String CPF = request.getParameter("CPF");
      String DATAN = request.getParameter("DATANASC");
      String DD = DATAN.substring(0,2);
      String MM = DATAN.substring(2,4);
      String YY = DATAN.substring(4,8);
      String DATA_NASC = YY+"-"+MM+"-"+DD;

      out.println(NOMEALUNO);
      out.println(ENDERECO);
      out.println(CIDADE);
      out.println(ESTADO);
      out.println(CEP);
      out.println(TELEFONE);
      out.println(EMAIL);
      out.println(CPF);
      out.println(DATA_NASC);
      
      //instancia classe de conexao
      Conexao conexao = new Conexao("localhost", "test", "root", "root");
      //conecta no banco
      Connection connection = conexao.connect();

      //cria o statment e realiza o insert
      Statement st = connection.createStatement();
      /*String sql = ("insert into ALUNO (NOME, ENDERECO, CIDADE, ESTADO, CEP, TELEFONE, EMAIL, CPF, DATANASC)"
      + " values(\'"+NOMEALUNO+"\',\'"+ENDERECO+"\',\'"+CIDADE+"\',\'"+ESTADO+"\',\'"+CEP+"\',\'"+TELEFONE+"\',\'"+EMAIL+"\',\'"+CPF+"\',\'"+DATA_NASC+"\'");*/
      String sql = ("insert into cad VALUES ("NOM", "END");";
      int res = st.executeUpdate(sql);

      if (res == 1)
      {
        out.println("Cadastrado com sucesso!");
      }
      else
      {
        out.println("Falha no cadastro!");
      }
      //fecha a conexao com o banco
      connection.close();
    }
    catch(Exception e)
    {
      out.println(e.toString() + "erro aqui no final");
    }



TEM UMA PARTE COMENTADA POIS EU TO TENTANDO EM UM BANCO DE TEST PRIMEIRO POIS NO OUTRO BANCO TÁ DANDO MAIS ERROS
DESDE JÁ AGRADEÇO VLW

Ewerton Rodrigues

Ewerton Rodrigues

Responder

Posts

24/03/2011

Davi Costa

Para excutar a query basta:

st.execute(sql);// se der algum erro ele lança uma exceção, não precisa tratar com
if (res == 1)
      {
        out.println("Cadastrado com sucesso!");
      }
      else
      {
        out.println("Falha no cadastro!");
      }

O try/catch já faz isso, inclusive vc pode colocar um finaly para forçar o fechamento da conexão.
Pesquise também sobre PreparedStatement é bem mais seguro do que Statement. Porque com Statement vai ficar mais fácil de quebrar sua segurança, existe basytante fonte falando sobre isso dá uma pesquisada vale a pena.

Att Davi
Responder

Gostei + 0

25/03/2011

Dyego Carmo

Em meu devspace tem uma aula de como enviar arquivos com JSP , tem o codigo prontinho... ai no MySQL eh soh usar o .setObject do PreparedStamente !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar