Duvidade de JDBC meu insert nao da certo alguem pode me ajudar por favor

11 respostas
diego.anfiloquio

escrevi o seguinte codigo para tentar fazer um insert nao esta dando certo, gostaria de aprender mais sobre jdbc, gostaria de saber se tem algum tutorial para aprender fazer cadastros com telas tipo swing algo assim obrigado

public class Insert {
	
 public static void main(String[] args) throws Exception {
				
	Class.forName("com.mysql.jdbc.Driver");
				
	String ipMaquina = "localhost";
	String nomeBanco = "mysql";
	String usuario = "root";
	String senha = "diego123";
					
	Connection connection = DriverManager.getConnection("jdbc:mysql://"+ipMaquina+"/"+nomeBanco+"?user="+usuario+"&password="+senha);
	
	Statement statement = connection.createStatement();
		
		String nome = "Diego";
        String email = "[email removido]";
        String telefone = "34339052";
		
		String queryInsert = "insert into contatos values = "+nome+email+telefone;
		
		int update = statement.executeUpdate(queryInsert);
		if(update != 0){
			System.out.println("Operacao realizada com sucesso!");
			System.out.println(queryInsert);
			System.out.println("-----------------------");
		}
				
		statement.close();
		
		connection.close();
		
	}
}

da o seguinte erro : Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= [email protected]' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
at net.cadastro.Insert.main(Insert.java:33)

11 Respostas

fabim

Leia o erro. Esta bem claro.

Sua sintaxe SQL esta errada.

diego.anfiloquio

Valeu cara ate li o erro porem nao sei corrgir, teria que por: insert value (‘nome’,‘email’,‘telefone’)?

fiaux
String queryInsert = "insert into contatos values = "+nome+email+telefone;

Realmente está errado, procure alguma referência de SQL.
Exemplo: http://www.w3schools.com/sql/sql_insert.asp

aquilante

Tente algo parecido com:

String query = "insert into contato(nome,email,telefone)values(\""+nome+"\","+email+",\""+telefone+"\")";

Ve se roda?

Vlwssss! :lol:

Andre_Manoel_L_S_Sou

E aeee!

Tudo bem meu irmão!
Deixa eu te falar…

O comando SQL correto tem que estar… assim…

[color=red]INSERT INTO NOMEDATABELA (CAMPO1, CAMPO2, CAMPO3, CAMPO4) VALUES ( VALOR1, VALOR2, VALOR3, VALOR4 );[/color]

Lembrando que se for valores numericos pode colocar a variavel direto !

Se for uma String ou um caractere…
OBRIGATORIAMENTE vc tem que colocar aspas simples…

Então ficaria algo assim…

[color=red]INSERT INTO CONTATO(nome, email,telefone,idade) VALUES(‘Andre Manoel’, ‘[email removido]’, ‘3394-7406’, 23);[/color]

abraçãooo!!!

S

Não estão faltando as [ ‘’ ] entre os nomes?

tipo: " ’ " +nome + " ’ "
:smiley:

Andre_Manoel_L_S_Sou

Corrigindo…

Talvez possa ser com aspas duplas…
Como disse o nosso caro amigo …
aí em cima… para usar aspas…
tem que colocar a barra antes…

[color=red]INSERT INTO CONTATO(nome, email,telefone,idade) VALUES(‘Andre Manoel’, ‘[email removido]’, ‘3394-7406’, 23); [/color]

ou

[color=red]INSERT INTO CONTATO(nome, email,telefone,idade) VALUES(“Andre Manoel”, “[email removido]”, “3394-7406”, 23); [/color]

Utilizando as variaveis…

[color=red]"INSERT INTO CONTATO(nome, email,telefone,idade) VALUES(’ “+ variavelNome +” ‘, ’ " +variavelEmail + "’, ’ " + variavelTelefone + “’,” +variavelIdade + "); "[/color]

jgbt

Se usar PreparedStatement vai poupar muita dor de cabeça…
aqu no GUJ tem um tutorial, de uma olhada.

[]´s

Andre_Manoel_L_S_Sou

[color=darkblue]YESSSSSSSSSSSSSSS[/color]

Linkel

Caramba…
Mas não tem nenhuma complicação em se fazer um insert…
Tem muita gente precisando estudar SQL, rssrsrsrsrsr…
Estão confundindo o colega…

Segue um exemplo…

private void incluirUsuario() { // conecta no banco de dados... conexao.conectar(); try { // usando Statement, mas você poderia usar o preparedStatement... stmt = conexao.con.createStatement(); stmt.executeUpdate("Insert into Usuarios (ModuloAcesso_Usu, Login_Usu, Senha_Usu) " + "values ('"+(String)comboModulo.getSelectedItem()+"','"+editLogin.getText()+"', " + "'"+editSenha.getText()+"')"); stmt.close(); JOptionPane.showMessageDialog(null,"Usuário incluído com sucesso!"); } catch(SQLException e) { JOptionPane.showMessageDialog(null,"Falha ao incluir o usuário!"); e.printStackTrace(); } finally { conexao.desconectar(); } }
É muito simples…
Um abraço!

diego.anfiloquio

Bom galera relamente meu problema tava no SQL mesmo valeu pela atençao abraço.

Criado 28 de março de 2008
Ultima resposta 30 de mar. de 2008
Respostas 11
Participantes 8