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
e está é a que está com erro
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
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)