Erro no insert do mysql!

8 respostas
C
 esse erro:

java.sql.SQLException: Syntax error or access violation message from server: 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 Linear at line 1

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2001)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)

at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1225)

at com.mysql.jdbc.Connection.execSQL(Connection.java:2278)

at com.mysql.jdbc.Connection.execSQL(Connection.java:2225)

at com.mysql.jdbc.Statement.executeQuery(Statement.java:1163)

public boolean incluirProf(String cod, String prof, String codigo) { //int codigo = ListarCodDisc(codDisciplina); try { PreparedStatement ps = this.conexao.prepareStatement("insert into Professores(CodProfessor, Nome, CodDisciplina) values(cod,prof,codigo) "); ps.setInt(1,Integer.parseInt(cod)); ps.setString(2,prof); ps.setInt(3,Integer.parseInt(codigo)); ps.executeUpdate(); return true; } catch (Exception e) { e.printStackTrace(); System.out.println("Erro inserir professor :"+e); return false; } }

8 Respostas

Bravox

troque isso (cod,prof,codigo) por isso ( ? , ? , ? )

C

Já troquei, e continua o mesmo erro!!

Washington_Wiltenbur

Como que está a sua classe com os métodos get e set?

guilhermetonetto

nome da tabela , nome dos campos , tudo certo?

[]'s

cs.santos0

Veja se o nome da tabela e dos campos do banco são exatamente iguais aos q vc colocou na instrução SQL.

uma dica é vc testar sua instrução antes de jogar na aplicação, se vc estiver usando netbeans, ou alguma ide para o banco vc consegue fazer isso, com isso vc reduzira os erros de sintaxe de instruções SQL.

flw

cs.santos0

por via das duvidas, troque:

ps.executeUpdate();

por

ps.execute();

e veja se funciona

Bravox

se após todas as dicas ainda persistir o mesmo erro manda a sua app mostrar a query que foi gerada dessa forma:

ps.setInt(3,Integer.parseInt(codigo));  
System.out.println(ps.toString()); // add essa linha no seu código
ps.executeUpdate();

e mostra a query gerada para nós !

Kamikaze

Como esta o tipo de dados desses campos no BD?

Esse CodProfessor não está com auto_increment ?

Case ele esteja setado, a query ficaria assim

PreparedStatement ps = this.conexao.prepareStatement("insert into Professores(Nome, CodDisciplina) values(?,?) ");

t+

Criado 10 de janeiro de 2008
Ultima resposta 10 de jan. de 2008
Respostas 8
Participantes 6