@Gabriel_Romao escreveu:
Essa é minha classe carro,
public class Carro { private int id; private String marca; private int ano; private String placa; private String modelo; private Cliente cliente;
Minha tabela Carro no WorkBench está com varias colunas, umas delas é uma chamada idCarro, que é a chave primaria
e está com auto increment.Essa é a minha classe carro, você consegue ver que tem ali um private int id, que deveria ter o mesmo valor da chave idCarro que está no banco. Eu precisaria de um modo que sempre que eu adicionasse um Carro no banco, eu conseguisse fazer o long id ser o idCarro do WorkBench, as formas que eu tentei deram problema e nao achei nada na Interface PreparedStatement para resolver isso. Será que alguem poderia me dar alguma ajuda?
Essa é a classe CarroDAO, com o método adiciona,
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class CarroDAO { private Connection connection; public CarroDAO(){ this.connection = new ConnectionFactory().getConnection(); } public void adicionaCarro(Carro carro){ try{ String sql = "insert into carro " + "(Marca,Ano,Placa,Modelo,Cliente_idCliente)" + " values (?,?,?,?,?)"; PreparedStatement stmt = connection.prepareStatement(sql); **PreparedStatement stmt2 = connection.prepareStatement("select idCarro from carro"); stmt.setString(1, carro.getMarca()); stmt.setInt(2, carro.getAno()); stmt.setString(3, carro.getPlaca()); stmt.setString(4, carro.getModelo()); stmt.setObject(5, carro.getCliente().getCarroId()); stmt.execute(); **ResultSet rs = stmt2.executeQuery(); **carro.setId(rs.getInt("idCarro")); stmt2.execute(); stmt2.close(); stmt.close(); }catch(SQLException e){ throw new RuntimeException(e); } }
Estou tendo o erro na parte do código que está com **, o que poderia estar errado?
Mensagens: 4
Participantes: 2