Cara não sei se entendi direito… mas eu uso o método assim para fazer insert em várias tabelas ao mesmo tempo, tem algumas verificações nos campos que vem como parâmetros, mas da para entender…
[code]
// INSERE NO PLANO
private static final String SQL_SIMCARD_INSERE_PLANO = “INSERT INTO plano(Nome)”
+ “VALUES((?::varchar))”;
// INSERE NA LINHA
private static final String SQL_SIMCARD_INSERE_LINHA = “INSERT INTO linha(Numero, CodigoPlano, CodigoStatusLinha, NumeroConta, DataAtivacao, DataAlteracao, MatriculaAlteracao)”
+ “VALUES((?::varchar)::numeric, (?::varchar)::integer, (?::integer),(?::varchar),(?::date),?,(?::varchar))”;
// INSERE NA SIMCARD
private static final String SQL_SIMCARD_INSERE_SIMCARD = “INSERT INTO SIMCard (Numero, CodigoProcessamento, NumeroLinha, CodigoStatusSIMCard, CodigoAPNProvisionada, CodigoOperadora, IMSI, ConsumoDados, DataAlteracao, MatriculaAlteracao)”
+ “VALUES((?::varchar)::numeric, (?::integer), (?::varchar)::numeric, (?::integer), (?::integer), (?::integer), (?::varchar)::numeric, (?::varchar), ?, (?::varchar))”;
// FAZ O INSERT NA CONTA, PLANO, LINHA E SIMCARD
public boolean simCardInsereTelecom(String simCard, String linha,
int apnUtilizada, String conta, int operadora, String plano,
int statusSIMCard, Date dtAtivacao, int fonte, int statusLinha,
String imsi, String consumoDados, String nomeArq, int codigoProc,
String login, Calendar horaAtual) {
boolean insere = false;
boolean existe = false;
Connection conn = null;
PreparedStatement pl = null;
PreparedStatement li = null;
PreparedStatement sc = null;
try {
conn = ConnectionManager.obterConexao();
pl = conn.prepareStatement(SQL_SIMCARD_EXISTE_PLANO);
if (plano == null || plano == "") {
plano = "0";
pl.setString(1, plano);
} else {
pl.setString(1, plano);
}
existe = pl.executeQuery().next();
if (!existe) {
pl = conn.prepareStatement(SQL_SIMCARD_INSERE_PLANO);
if (plano == null || plano == "") {
plano = "0";
pl.setString(1, plano);
} else {
pl.setString(1, plano);
}
pl.executeUpdate();
}
li = conn.prepareStatement(SQL_SIMCARD_EXISTE_LINHA);
li.setString(1, linha);
existe = li.executeQuery().next();
if (!existe) {
li = conn.prepareStatement(SQL_SIMCARD_INSERE_LINHA);
li.setString(1, linha);
li.setString(2, CodigoPlano(plano));
li.setInt(3, statusLinha);
if (conta == null || conta == "") {
conta = "0";
li.setString(4, conta);
} else {
li.setString(4, conta);
}
if (dtAtivacao != null){
li.setDate(5, new java.sql.Date((dtAtivacao).getTime()));
} else {
li.setDate(5, null);
}
li.setTimestamp(6,
new java.sql.Timestamp(horaAtual.getTimeInMillis()));
li.setString(7, login);
li.executeUpdate();
}
sc = conn.prepareStatement(SQL_SIMCARD_INSERE_SIMCARD);
sc.setString(1, simCard);
sc.setInt(2, codigoProc);
sc.setString(3, linha);
sc.setInt(4, statusSIMCard);
sc.setInt(5, apnUtilizada);
sc.setInt(6, operadora);
if (imsi == null || imsi == "") {
imsi = "0";
sc.setString(7, imsi);
} else {
sc.setString(7, imsi);
}
if (consumoDados == null || consumoDados == "") {
consumoDados = "0";
sc.setString(8, consumoDados);
} else {
sc.setString(8, consumoDados);
}
sc.setTimestamp(9,
new java.sql.Timestamp(horaAtual.getTimeInMillis()));
sc.setString(10, login);
sc.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
ConnectionManager.fecharConexao(conn, null, pl);
ConnectionManager.fecharConexao(conn, null, li);
ConnectionManager.fecharConexao(conn, null, sc);
}
return insere;
}[/code]