ozzy,
não sei exatamente qual o grau de conhecimento que você tem sobre bancos de dados. Me desculpe se o que eu vou falar já lhe é óbvio, mas a intenção é realmente ajudar.
Imaginando que você queira persistir o relacionamento entre Região e Cidade, vou considerar apenas essas duas entidades.
Não sei se você já possui essas duas tabelas em seu banco, e o que eu vou sugerir é baseado nessa hipótese.
Digamos que você tenha a tabela de REGIAO com dois campos (id e nome) e a tabela de CIDADE com três campos (id, nome, idregiao).
- Se uma cidade pode pertencer a uma única região, então você pode gravar na tabela de cidade o nome dela, e o id da região.
Usando a lógica sugerida acima, teríamos:
Cidade[] cidades;
int i = 0;
while ( i < cbo.getItemCount() )
{
// imagine que idRegiao vocÊ pegou de outro combo, ou campo, e que o construtor da classe cidade
// recebe como parâmetros o nome da cidade e o id da região
cidades[i] = new Cidade( ((String)cbo.getItemAt(i)), idRegiao);
i++;
}
String sql = null;
for ( Cidades : cidades)
{
sql += "INSERT INTO cidade (nome, idregiao) values ( " + cidade.getNome() + ", " + cidade.getIdRegiao() + " ); \n";
}
- se uma cidade puder pertencer a mais de uma região, então você terá uma tabela de relacionamento CIDADE_REGIAO que possuirá apenas os ids de CIDADE e REGIAO (idcidade, idregiao).
Nesse caso você teria previamente cadastradas as cidades e as regiões, e o que você cadastraria de novo seriam os relacionamentos.
Você poderia “alimentar” seu combo diretamente com objetos do tipo “Cidade” ao invés de Strings, e ao obter os valores do combo, para gravar no banco, poderia fazer o seguinte:
int[] idcidades;
int i = 0;
while ( i < cbo.getItemCount() )
{
// imagine que o combo foi preenchido com objetos "Cidade"
idcidades[i] = ((Cidade)cbo.getItemAt(i)).getId();
i++;
}
String sql = null;
for ( int index = 0; index < idcidades.length; index++)
{
sql += "INSERT INTO cidade_regiao (idcidade, idregiao) values ( " + idcidades[index] + ", " + idregiao+ " ); \n";
}
Obviamente esta não é a melhor maneira de se fazer o cadastro, procure usar PreparedStatements, e os métodos que citei anteriormente, da intercafe Statement. Mas a idéia geral seria essa.
Espero que ajude.
[]'s