É simples.
eu tenho um banco ODBC e nele está contido 4 tabelas. FRENTE, Produtor, Propriedade, Municipio.
esse método inserirDados serve para que, eu verifique algumas coisas.
1o: eu preciso pegar os nomes dos produtores da tabela produtor e jogar dentro da tabela FRENTE ( que está vazia), sendo que, eu preciso verificar na tabela propriedade se o produtor é o mesmo na tabela propriedade, num campo chamado nome_proprietario_imovel_principal, se o nome for o mesmo, tem um campo na tabela FRENTE, chamado ID_PROD, ou seja identificador do produtor. Então se ele for o mesmo da tabela propriedade, esse campo recebe o número 1, se ele não for, ele recebe o número 2.
por isso tem:
if (rs.getString(2).equals(produtor.getNomeProdutor())) {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO) VALUES(?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "1");
Pstmt1.execute();
}else {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO) VALUES(?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "2");
Pstmt1.execute();
}
eu criei o int chave, porque a chave primaria da tabela FRENTE tem que começar com 700.000. Entende ?
então depois que você me ajudou eu consegui. E assim ficou ó :
public void insereID(ConexaoDAO conexao){
Produtor produtor = new Produtor();
this.verificaBranco();
try {
PreparedStatement Pstmt1 = this.conexao
.prepareStatement("SELECT nome_produtor,nome_proprietario_imovel_principal FROM Produtor prod,Propriedade prop WHERE prod.cod_produtor = prop.cod_produtor AND prod.cod_produtor < 12 ");
ResultSet rs = Pstmt1.executeQuery();
int chave = 700000;
while (rs.next()) {
System.out.println("chave: " + chave);
produtor.setNomeProdutor(rs.getString(1));
System.out.println(produtor.getNomeProdutor());
// String nome = rs.getString(2);
if (rs.getString(2).equals(produtor.getNomeProdutor())) {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO) VALUES(?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "1");
Pstmt1.execute();
}else {
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(CHAVE,ID_PRO) VALUES(?,?)");
Pstmt1.setString(1, Integer.toString(chave));
Pstmt1.setString(2, "2");
Pstmt1.execute();
}
chave++;
}
// inserir nome dos produtores
Pstmt1 = this.conexao
.prepareStatement("INSERT INTO FRENTE(NOME_PROD) VALUES(?)");
Pstmt1.setString(1,produtor.getNomeProdutor());
Pstmt1.execute();
Pstmt1.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
Agradeço ae a suma importância do forum, e não menor participação de sua ajuda Bruno Laturner. Obrigado mesmo mano!