Inserindo dados no banco de dados

17 respostas
ryouta

Pq não inssere nada no banco de dados ? a conexão está correta...

antes de pergunta o banco tah criado e a tabela tbm.

testei com uma classe java normal com main e pego mais no jsp tah sem querer pegar.

<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="javax.swing.JOptionPane"%>
<html>
<head>
</head>
<body>
<%


String nome = "rafa";

try {
	Class.forName("com.mysql.jdbc.Driver");
	String url = "jdbc:mysql://localhost:3306/exemplo";
	Connection con = DriverManager.getConnection(url,"root","ryouta");
	System.out.print("con: "+con);
	Statement sta = con.createStatement();
	sta.executeUpdate("Insert into amor (nome) Values ('"+nome+"')");
	con.close();
} catch (ClassNotFoundException e) {
	e.printStackTrace();
} catch (SQLException e) {
	e.printStackTrace();
}


%>

Chegou aqui!
</body>
</html>

17 Respostas

exilado

Tem como você postar o erro que está te retornando

ryouta

não me retorna erro ! a pagina aparece certinho mais não inseri no banco

Ed.prog

Como é a estrutura da tabela? Qual a chave primária?

ryouta
create table amor(

nome varchar2(100)

);

não tem xave primaria !

não tem erro na tabela testei com uma classe java com main e inseriu os dados ! só com o jsp que não quer

exilado

tenta adicionar um con.commit();
ficando:

<%@page import="java.sql.SQLException"%>  
<%@page import="java.sql.Connection"%>  
<%@page import="java.sql.Statement"%>  
<%@page import="java.sql.DriverManager"%>  
<%@page import="javax.swing.JOptionPane"%>  
<html>  
<head>  
</head>  
<body>  
<%  
  
  
String nome = "rafa";  
  
try {  
    Class.forName("com.mysql.jdbc.Driver");  
    String url = "jdbc:mysql://localhost:3306/exemplo";  
    Connection con = DriverManager.getConnection(url,"root","ryouta");  
    System.out.print("con: "+con);  
    Statement sta = con.createStatement();  
    sta.executeUpdate("Insert into amor (nome) Values ('"+nome+"')");  
    con.commit();
    con.close();  
} catch (ClassNotFoundException e) {  
    e.printStackTrace();  
} catch (SQLException e) {  
    e.printStackTrace();  
}  
  
  
%>  
  
Chegou aqui!  
</body>  
</html>

testa ai e fala se deu certo

E

verifica se com o parâmetro “&autoCommit=true” no final da string connection não funciona.

Verifica se em “nome” não tem aspas simples, ou troca por PreparedStatement.

ryouta
exilado:
tenta adicionar um con.commit(); ficando:
<%@page import="java.sql.SQLException"%>  
<%@page import="java.sql.Connection"%>  
<%@page import="java.sql.Statement"%>  
<%@page import="java.sql.DriverManager"%>  
<%@page import="javax.swing.JOptionPane"%>  
<html>  
<head>  
</head>  
<body>  
<%  
  
  
String nome = "rafa";  
  
try {  
    Class.forName("com.mysql.jdbc.Driver");  
    String url = "jdbc:mysql://localhost:3306/exemplo";  
    Connection con = DriverManager.getConnection(url,"root","ryouta");  
    System.out.print("con: "+con);  
    Statement sta = con.createStatement();  
    sta.executeUpdate("Insert into amor (nome) Values ('"+nome+"')");  
    con.commit();
    con.close();  
} catch (ClassNotFoundException e) {  
    e.printStackTrace();  
} catch (SQLException e) {  
    e.printStackTrace();  
}  
  
  
%>  
  
Chegou aqui!  
</body>  
</html>

testa ai e fala se deu certo

não pego

exilado

o que mostra quando você imprime o objeto con?

System.out.print("con: "+con);
ryouta

essa linha é um teste de conexão q eu fiz no metodo main q conssegui gravar no banco !

mais no jsp não mostra essa linha é dispenssavel

exilado

mas então se no método main ela imprime ela deveria imprimir no JSP tbm.
o erro está antes dessa linha então.

ryouta

ai esta !!!

pq não insere a linha ?

exilado

muda onde esta: e.printStackTrace();
para: System.out.print(e);

Ficando:

<%@page import="java.sql.SQLException"%>    
<%@page import="java.sql.Connection"%>    
<%@page import="java.sql.Statement"%>    
<%@page import="java.sql.DriverManager"%>    
<%@page import="javax.swing.JOptionPane"%>    
<html>    
<head>    
</head>    
<body>    
<%    
    
    
String nome = "rafa";    
    
try {    
    Class.forName("com.mysql.jdbc.Driver");    
    String url = "jdbc:mysql://localhost:3306/exemplo";    
    Connection con = DriverManager.getConnection(url,"root","ryouta");    
    System.out.print("con: "+con);    
    Statement sta = con.createStatement();    
    sta.executeUpdate("Insert into amor (nome) Values ('"+nome+"')");    
    con.commit();  
    con.close();    
} catch (ClassNotFoundException e) {    
    System.out.print(e);
    //e.printStackTrace();    
} catch (SQLException e) {    
    System.out.print(e);
    //e.printStackTrace();    
}    
    
    
%>    
    
Chegou aqui!    
</body>    
</html>

e ve se vai imprimir algum erro na pagina.
se imprimir posta o erro aqui

E

um detalhe, os System.out.print e e.printStackTrace vai imprimir no log do tomcat, não na página.

se quiser imprimir na página, usa o out.print.

ryouta

ele entra nessa exerção e da isso

java.lang.ClassNotFoundException: com.mysql.jdbc.

exilado

provavelmente você não importou o driver do mysql para o projeto.

E

coloca o driver do MySQL no classpath do seu projeto. Ou no classpath do tomcat (a pasta lib)

ryouta

importei sim !

foi a primeira coisa q fiz…

Agora pq ele roda em uma classe java com main e no jsp não ?

algum de vcs sabem como fazer pro jsp gravar no banco ?

Criado 26 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 17
Participantes 4