Use placeholdrers para os parâmetros e os setters do PreparedStatement para passar os valores
"insert into lentes (esferico,cilindrico,descricao) values (?,?,?)";
douglasmorais
Mark_Ameba,
fiz conforme sua recomendação porem o erro mudou.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Unknown column ‘descr’ in ‘field list’
marcelogds
Checa os nomes dos campos da tabela em que vc esta fazendo o insert. Use exatamente os mesmos nomes e se possivel os placeholders que o Arnaldo recomendou.
V
victorhsn
Cara, pelo o erro esta falando que não existe a coluna POLICARBONATO e a outra também descr não existe na sua tabela.
Verifica se elas se encontram lá. e se o nome esta corretamente digitado.
vi-gb
Acho que por ser uma string o desc tem q ta entre aspas sabe “”"+desc+""" ou algo assim, pq o " vai fazer sair a aspas na query.
victorwss
Tem gente que nunca ouviu falar de SQL-injection…
douglasmorais
SQL-Injection ???
douglasmorais
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 'Policarbonato -6.00+0.25)' at line 1
publicclassTesta14{publicstaticvoidmain(Stringargs[]){conexaoplug=newconexao();intinicio=-6;doubleEsferico;doubleCilindrico;Stringdescr="";Stringdescricao="";for(Esferico=inicio;Esferico<=6;Esferico=Esferico+0.25){for(Cilindrico=0.25;Cilindrico<=3;Cilindrico=Cilindrico+0.25){//for( Eixo=1; Eixo<=180;Eixo=Eixo+1){ descricao="POLICARBONATO "+Esferico+"+"+Cilindrico;System.out.println(descricao);plug.conecta("com.mysql.jdbc.Driver","jdbc:mysql://localhost/produtos","root","admin");Stringinsertsql="insert into lentes (esferico,cilindrico,descricao) values ("+Esferico+","+Cilindrico+descricao+")";plug.grava(insertsql);}}plug.desconecta();}}
Policarbonato -6.00+0.25
isso aí é o que deveria ser salvo na coluna descricao mas não ta funcionando.
A coluna deve ser caracter logo tem que colocar aspas simple em volta do valor.
Espero ter ajudado.
flws
douglasmorais
Entao Fantomas, a coluna descricao é de caracteres. Observe, eu não estou colocando aspas duplas. Aliás não estou colocanco nenhum tipo de aspas.
Eu acho que o problema deve ser com a maneira de atribuição da variável descricao na linha 13
Focao
Stringinsertsql="insert into lentes (esferico,cilindrico,descricao) values ("+Esferico+","+Cilindrico+","+"'"+descricao+"')";
tem que ser assim mesmo ?
Não pde ser PrepareStatement ?
Stringinsert="INSERT INTO lentes (esferico,cilindrico,descricao) values (?,?,?)";pstmt=connection.prepareStatement(insert);pstmt.setDouble(Esferico,Esferico);pstmt.setDouble(cilindrico,cilindrico);pstmt.setString(descricao,descricao);
boa sorte
coloca o erro aí
douglasmorais
Aff, não dá certo essa porcaria… Desisto
vi-gb
Calma, me diga quais campos tem sua tabela e de que tipo sao (ex: int, varchar).
Tenta pegar a query pronta e inserir pelo prompt no mysql pra ver que erro da, as vzs o erro la é mais significativo.
M
marcobiscaro2112
Calma… é importante aprender sempre do melhor modo. O modo correto é usar PreparedStatement. Sugiro que leia e vá acompanhando a apostila FJ-21 da Caelum, disponível para download.
douglasmorais
Entao, testando pelo MySQL FRONT, o código funciona.
O problema, eu acho, está sendo usar a variável descricao. se eu coloco o valor real no insert funciona certinho.
A minha tabela foi feita assim: