Olá pessoal! Preciso de uma ajudinha ai se possivel.
A cituação é a seguinte: tenho uma aplicação java Desktop que estou fazendo, usando banco mysql. No meu banco eu tenho 2 tabelas sendo elas Associados e Convenios, sendo que na Associados tem idassociados, socio, setor, categoria e na Convenios tem idconvenios, descrição e valor;
Gostaria que na ação de um botão ele automaticamente pegasse os dados da tabela Associados e os dados da tabela Convenios o incluisse em uma terceira tabela organizada da seguinte forma…
idassociados - socio - setor - idconvenios - descricao - valor
De acordo com a categoria de cada socio seja ela categoria 1 ou categoria 2 ele lança o valor cadastrado na tabela convenios no campo valor.
Resumindo: ira lançar o valor da mensalidade para cada socio dependendo a categoria que o socio esta cadastrado.
Espero uma ajuda ai galera!
Tomei a liberdade de adaptar seu banco de dados, pensei em mudar algumas coisas que estavam repetitivas:
A idéia principal foi definir o valor da mensalidade na tabela de categorias, tipo (cat1 = R$25,00) (cat2 = R$50,00);
a Tabela plano representa a tua 3ª tabela, porém adaptada. No caso vc escolhe um socio, um convenio, uma categoria (valor), data de inicio do plano e uma observação.
dá uma analizada:
Não estou afirmando que do meu geito tá certo, acho que se eu fosse fazer ainda faria mais diferente… é só pra discutir-mos …
depois de entra-mos em acordo, vamos pro lado da cdificação…
Ola ferreira, primeiramente obrigado pelo auxilio, entendi seu raciocinio e concordo que tenham dados que possam ser subtraidos
minha duvida é apenas de como faço entao para fazer com que as tabelas se comuniquem entre si?
Desculpe a ignorancia, é que nao tenho tanta experiencia nisso ainda…estou fazendo para aprender cada vez mais sobre programacao.
Vamos ver:
Com essas duas Classes já dá pra fazer algo:
package pacote;
import java.util.Date;
public class PlanoVo {
private Integer chave;
private Integer idAssociados;
private Integer idCategorias;
private Integer idConvenios;
private Date data;
private String Obs;
public PlanoVo() { }
public PlanoVo(Integer idAssociados, Integer idCategorias,
Integer idConvenios, Date data, String obs) {
super();
this.idAssociados = idAssociados;
this.idCategorias = idCategorias;
this.idConvenios = idConvenios;
this.data = data;
this.obs = obs;
}
public Integer getChave() { return chave; }
public void setChave(Integer chave) { this.chave = chave; }
public Integer getIdAssociados() { return idAssociados; }
public void setIdAssociados(Integer idAssociados) { this.idAssociados = idAssociados; }
public Integer getIdCategorias() { return idCategorias; }
public void setIdCategorias(Integer idCategorias) { this.idCategorias = idCategorias; }
public Integer getIdConvenios() { return idConvenios; }
public void setIdConvenios(Integer idConvenios) { this.idConvenios = idConvenios; }
public Date getData() { return data; }
public void setData(Date data) { this.data = data; }
public String getObs() { return Obs; }
public void setObs(String obs) { Obs = obs; }
@Override
public String toString() {
return "Sócio: " + idAssociados + "Convenio: " + idConvenios + "Categoria: " + idCategorias;
}
}
package pacote;
import java.sql.Date;
import java.sql.PreparedStatement;
public class PlanoDao {
public boolean salvar(Integer idassociados, Integer idcategorias, Integer idconvenios, Date data, String obs) {
PlanoVo vo = new PlanoVo(idassociados, idcategorias, idconvenios, data, obs);
String sql = "INSERT INTO Plano (idassociados, idcategorias, idconvenios, data, obs) VALUES (?,?,?,?,?)";
try {
PreparedStatement ps = ClasseDeConexao.con.prepareStatement(sql);
ps.setInt(1, vo.getIdAssociados());
ps.setInt(2, vo.getIdCategorias());
ps.setInt(3, vo.getIdConvenios());
ps.setDate(4, (Date) vo.getData());
ps.setString(5, vo.getObs());
ps.executeUpdate();
ps.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
Segue o codigo para caso alguem precisar;
this.dataAtual();
try {
st.executeUpdate("insert into documentos (select 0 as numero, 0 as serie, 0 as prestacao, a.idassociados, a.associado, a.setor, c.idconvenios, c.descricao, c.valor, '"+ dataAtual +"', 'Aberto' as situação, '' as dataBaixa from associados a left join convenios c on(a.categoria = c.idconvenios))");
JOptionPane.showMessageDialog(rootPane, "Gerado com sucesso!");
} catch (SQLException ex) {
Logger.getLogger(cadastro_documentos.class.getName()).log(Level.SEVERE, null, ex);
}