Boa noite galera,
Estou realizando um trabalho acadêmico que se resume em criar roteiros em que cada um contenha 1 motorista, 1 veiculo e vários objetos(cada um com uma id diferente). Minha dificuldade é inserir essas varias IDs dos objetos e relacionar às IDs do roteiro,motorista e veiculo.
PS:Os objetos devem ser adicionados automaticamente(Segundo a Regra de Negócio do trabalho),
minha intenção não é ir adicionando os objetos 1 por 1
EX:Roteiro 1, Motorista 1, Veiculo 1, Objeto 1, Objeto 2, Objeto 3;
Roteiro 2, Motorista 2, Veiculo 2, Objeto 4,Objeto 5,Objeto 6,Objeto 7
e assim vai…
SQL: (Achei apenas nescessario a tabela roteiro)
CREATE TABLE ROTEIRO(
IDROTEIRO INT PRIMARY KEY NOT NULL,
DATAR DATE,
ID_MOTORISTA INT,
ID_OBJETO INT,
ID_VEICULO INT,
FOREIGN KEY (ID_MOTORISTA) REFERENCES MOTORISTA(IDMOTORISTA),
FOREIGN KEY (ID_OBJETO) REFERENCES OBJETO(IDOBJETO),
FOREIGN KEY (ID_VEICULO) REFERENCES VEICULO(IDVEICULO)
);
Método Control:
public void cadastrarAction() throws ParseException {
//Montar nova objeto
roteiro = new Roteiro();
roteiro.setIdr(Integer.parseInt(tfIdr.getText()));
roteiro.setDatar(sdf1.parse(tfDatar.getText()));
roteiro.setMotorista((Motorista)getMSelecionado());
roteiro.setVeiculo((Veiculo)getVSelecionado());
roteiro.setObjeto();// Aqui que mora a duvida
boolean res = grDao.salvar(roteiro);
if (res) {
JOptionPane.showMessageDialog(null, "Cadastrado!");
} else {
JOptionPane.showMessageDialog(null, "Erro");
}
Método Dao:
public boolean salvar(Roteiro obj) {
try {
stmt = conexao.prepareStatement("INSERT INTO "
+ "roteiro(idroteiro,datar,id_motorista,id_veiculo,id_objeto) "
+ "VALUES(?,?,?,?,?)");
stmt.setInt(1, obj.getIdr());
stmt.setDate(2, new java.sql.Date(obj.getDatar().getTime()));
stmt.setInt(3, obj.getMotorista().getIdm());
stmt.setInt(4, obj.getVeiculo().getIdv());
stmt.setInt(5, obj.getObjeto().getIdo());
int res = stmt.executeUpdate();
if (res > 0) {
return true;
} else {
return false;
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
return false;
}
}
PS2: Meu código em si esta bem extenso pois o trabalho é grande e por isso só botei os métodos que julguei essenciais, mas caso precisem de mais detalhes só falar!
Obrigado!