Versão atual:

Cadastro N para N (muitos para muitos), onde preciso enviar um Array.

https://www.filepicker.io/api/file/Urh8L7cxRXi8BS4uS5MC

Estou fazendo um cadastro N para N (muitos para muitos), onde preciso enviar conforme a imagem um Array de medicamentos, Unidade e posologia. A questão é como pegar esse Array em apenas um request e persistir na DAO na tabela com esse array. Isso é possível, pois na DAO como vou cadastrar um array percorrendo cada coluna da tbela e dando os insert no JAVA.

CONTROLLER

HttpSession session = request.getSession(true); Integer idAnimal = (Integer) session.getAttribute("idAnimal"); String obsRecAnimal = request.getParameter("observacao_receituario_animal"); String dataEmissaoRec = request.getParameter("data_emissao_receituario_animal"); String medAnimal = request.getParameter("medicamento_animal"); String unidDoseAnimal = request.getParameter("unidade_dose_medicamento_animal"); String posologiaAnimal = request.getParameter("posologia_receituario_animal");

Animal animal = new Animal(); ReceituarioAnimal receituario = new ReceituarioAnimal(); receituario.setDataEmissaoReceituarioAnimal(Conversoes.converterData((dataEmissaoRec).replace("-", "/"))); receituario.setObservacaoReceituarioAnimal(obsRecAnimal); receituario.setMedicamentoAnimal(medAnimal); receituario.setUnidadeDoseMedicamentoAnimal(unidDoseAnimal); receituario.setPosologiaReceituarioAnimal(posologiaAnimal); animal.setIdAnimal(idAnimal); receituario.setAnimal(animal);


DAO

public Integer cadastrar(ReceituarioAnimal recAnimal) throws Exception {

PreparedStatement stmt = null; ResultSet rs = null; Integer idReceituarioAnimal = null;

String sql = "INSERT INTO receituarioanimal(data_emissao_receituario_animal, " + "medicamento_animal, unidade_dose_medicamento_animal, id_animal, " + "observacao_receituario_animal, " + "posologia_receituario_animal) VALUES (?, ?, ?, ?, ?, ?, ?, ?) RETURNING id_receituario_animal;";

try {

stmt = conn.prepareStatement(sql); stmt.setDate(1, new java.sql.Date(recAnimal.getDataEmissaoReceituarioAnimal().getTime())); stmt.setString(2, recAnimal.getMedicamentoAnimal()); stmt.setString(3, recAnimal.getUnidadeDoseMedicamentoAnimal()); stmt.setInt(4, recAnimal.getAnimal().getIdAnimal()); stmt.setString(5, recAnimal.getObservacaoReceituarioAnimal());

rs = stmt.executeQuery(); if (rs.next()) { idReceituarioAnimal = rs.getInt("id_receituario_animal");

}

Versões(4):

Ver a versão formatada

Cadastro N para N (muitos para muitos), onde preciso enviar um Array.

Comentário

new question