Insert em JSP no MySQL ajuda ...

Java

24/03/2011

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

Curtidas 0

Respostas

Davi Costa

Davi Costa

24/03/2011

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
GOSTEI 0
Dyego Carmo

Dyego Carmo

24/03/2011

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 !
GOSTEI 0
POSTAR