Estou criando um pequeno sistema de locação de veiculos e na persistência estou utilizando PreparedStatement conforme abaixo um trecho do método para inserir carros.
Porém quando ele vai executar o método ele retornar que a Syntax sql possui erro infornado que ‘?’ não é um valor válido, ou seja o métodos setString, setInt e etc não estão fazendo a substituição do parametro pelo valor.
Alguem pode me dar uma ajuda com este problema? :shock:
sql = "insert int tb_carro values (null, ?, ?, ?)";
Deveria ser assim né :
sql = "insert into tb_carro values (null, ?, ?, ?)";
Att
N
nero.rodrigues
É, neste caso só esqueci o “O” mas no código está certo, pois sempre crio a string sql primeiro no SGBD para depois passar para o fonte do Java substituindo pelos parametros “?”.
ManoJava
e pq vc passa null nesse primeiro parametro? o que te retorna o indice(0) ?, posta o restante do codigo, com as linhas onde vc abre a conexão e faz o executeUpdate().
Att
N
nero.rodrigues
//Conexão Banco de DadosprivatestaticConnectionconexaoDb()throwsClassNotFoundException,SQLException{Stringhostname="localhost";Stringlogin="root";Stringsenha="";Stringdbname="locadora";Stringurl="jdbc:mysql://"+hostname+"/"+dbname;Connectionconexao=null;Class.forName("com.mysql.jdbc.Driver");conexao=(Connection)DriverManager.getConnection(url,login,senha);returnconexao;}// Método para inserção de carro o valor null passado é devido a chave primaria ser Auto increment.// Como não estou especificando o nome das colunas que irei inserir os valores.// Atributos de carro na Tabela // Int AI idCarro, String not null marcarCarro, String not null modeloCarro, Int not null anoCarro, // String not null chassiCarro, String not null corCarro, String desConservacaoCarroprotectedstaticbooleaninserirCarro(Carroc)throwsClassNotFoundException,SQLException{intresult;Connectionconn=conexaoDb();sql="insert into tb_carro values(null,?,?,?,?,?,?,?)";psmt=conn.prepareStatement(sql);psmt.setString(1,c.getFabricanteCarro());psmt.setString(2,c.getModeloCarro());psmt.setInt(3,c.getAnoCarro());psmt.setString(4,c.getPlaca());psmt.setString(5,c.getChassiCarro());psmt.setString(6,c.getCorCarro());psmt.setString(7,c.getDesEstadoConservacaoCarro());result=psmt.executeUpdate(sql);psmt.close();conn.close();if(result>=1){returntrue;}else{returnfalse;}}