Insert no MySQL!

6 respostas
betonit

Gente, help me!

Estou tentando fazer um insert no meu db em MySQL mas n consigo diferentemente do select q consigo perfeitamente. Eis o code para teste:

<%@page import="java.sql.*"%> <% try { Class.forName("com.mysql.jdbc.Driver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException:"); System.err.println(e.getMessage()); }%> <!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>Lomboz JSP</title> </head> <body bgcolor="#FFFFFF"> <% try { Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/teste?user=root;"); Statement stm = conn.createStatement(); String nome = "VANESSA"; String endereco; ResultSet rs = stm.executeQuery("INSERT INTO CADASTRO (nome) VALUES ('"+nome+"')"); } catch (SQLException ex) { System.err.println("SQLException:" + ex.getMessage()); }%> </body> </html>

Um amigo meu me falou q tem algo relativo a permissoes no MySQL? Aonde mexo nisso lá? Não achei…

Desde de já agradeço,
Beto.

6 Respostas

_fs

Cara, qual erro acontece? Qual exceção você recebe? Que tal usar stm.execute( String sql ), ou stm.executeUpdate( String sql ) ao invés de usar o comando que serve para SELECT?

E, desculpe a franqueza, mas para programar Java deste jeito é infinitamente mais fácil e simples usar PHP ou ASP. Se estiver com tempo de estudar, aconselho fortemente a procurar por Servlets. Assim sendo, poderá aproveitar o que Java tem a oferecer.

leonardom

Carlos, procure usar JSP apenas para sua camada de visualização, colocando a sua lógica dentro de Servlets. Isso facilita e muito futuras manutenções no seu sistema. Falo isso porque herdei aqui vários projetos feitos iteramente em JSP e dar manutenção nestes projetos não é fácil, dá vontade de sair correndo.

E sobre o seu problema, para comandos de INSERT e UPDATE utilize o método executeUpdate(String sql)

[]´s

C

Carlos,

Suponho que vc. esta iniciando agora. O seu codigo tem alguns detalhes nao desejaveis:

  • faça a conexão através de um DataSource criado no seu containner (tomcat). Com isto vc. esta utilizando um Pool de conexoes e sua página ficará MUITO mais rapida.

  • crie uma classe utilitaria para acessar JDBC. Ou pegue algum framework pronto. Seria uma classe com metodos estaticos do tipo:

public class JDBCUtil {

public Connection getConnection() ;

public void closeStatement() ;

public void closeConnection()

}

Já pensou se mudar algum parametro de Conexao ? Vc. terá que alterar todas suas paginas JSP… vc ganhará muito tempo com isto…

  • vc nao fechou nenhum objeto SQL. Sempre feche todos os objetos Statements, PreparedStatements, Connection etc.

  • o comando para atualizar é o executeUpdate();

betonit

Vcs tem razao. Sou iniciante em Java, já programo em ASP mas enchi de M$! Enfim, sei q n eh assim q se deve acessar meu banco onde poderia criar uma camada de persistencia como a pattern DAO e utilizar a pattern MVC2 para minha aplicacao. Gente, é o q pretendo mas com calma. Peguei esse code para testar um insert em JSP e só. Enfim n tá funcionando n sei pq. Só queria uma solução para isso e me perdoem por erros pois ainda estou iniciando na linguagem.

C

Ola,

Nao estavamos criticando, mas sim ajudando. :lol: E acho que vc esta certo: primeiro aprenda a fazer na mão. Depois , vai aprendendo a utilizar os frameworks disponiveis (persistencia, web etc).

pcalcado

Adendo: não a lógica de negócios :wink:

[]s

Criado 27 de agosto de 2004
Ultima resposta 27 de ago. de 2004
Respostas 6
Participantes 5