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?