Pessoal estou com a seguinte situação:
tenho uma tabela cliente e outra compra. onde um cliente cadastrado realizará compras. Logo cada compra deve ter um ID de um cliente. Sei que isso pode ser básico para muitos aqui, mas agradeço a força.
Me baseando por outro tópico qui do fórum meu código ficou assim:
public void inserir(ClienteBean cliente, CompraBean compra) {
int idresult = 0;
String sql = "insert into cliente (nome) values(?)";
try {
if (conn == null) {
JOptionPane.showMessageDialog(null, "BD nao encontrado");
} else {
ps = conn.prepareStatement(sql,
PreparedStatement.RETURN_GENERATED_KEYS);
ps.setString(1, cliente.getNomeCliente());
rs = ps.getGeneratedKeys();
int lastIsertedId = rs.getInt(cliente.getIdCliente());
compra.setIdcliente(lastIsertedId);
idresult = compra.getIdcliente();
rs.close();
ps.close();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println("Erro no primeiro Bloco");
}
String sql2 = "insert into compra(idcliente,produto) values("
+ idresult + ",?)";
try {
PreparedStatement ps2 = conn.prepareStatement(sql2);
ps2.setString(1, "idcliente");
ps2.execute();
ps2.close();
} catch (SQLException e) {
System.out.println("Erro no SQL2" + e);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ClienteBean cliente = new ClienteBean();
cliente.setNomeCliente("TERCIO");
CompraBean compra = new CompraBean();
compra.setProduto("CARRO");
new ClienteDAO().inserir(cliente, compra);
}
}
Porém tenho o seguinte erro
java.sql.SQLException: Illegal operation on empty result set.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2674)
at ClienteDAO.inserir(ClienteDAO.java:36)
at ClienteDAO.main(ClienteDAO.java:67)