Como cadastrar mais de um itemcompra

Pessoal olá,

Uso o padrão DaoFactory no meu projeto final, e também estou fazendo em camadas MVC,
esse (ai embaixo) é o modo como cadastro as informações que vem da tela do sistema pra dentro do controle
e envio pra DAO, no caso de uma transação de venda que tenha as seguintes tabelas
compra, itempedido e peça como faço para cadastrar mais de um produto na mesma compra
como ficaria no controle, usaria um array para armazenar as compras, mas como seria o insert
neste caso, que é uma transação?

//neste exemplo segue o cadastro na classe Controleveículo

   if (comando.equals("cadastrar"))
   {
        Veiculo veiculo= new Veiculo();
       
       
        veiculo.setPlaca(placa);
        veiculo.setMarca(marca);
        veiculo.setModelo(modelo);
        veiculo.setAno(ano);
        veiculo.setTipo(tipo);
        veiculo.setFabricante(fabricante);
       
      
       DaoFactory df=DaoFactory.getDaoFactory(DaoFactory.POSTGRESQL);
       DaoVeiculo dao= df.getDaoVeiculo();
          dao.cadastrar(veiculo);
         
      RequestDispatcher rd=req.getRequestDispatcher("/visao/Tela_CadVeiculo.jsp");
      rd.forward(req,res);
 
   }

//esse exemplo é o cadastro veículo na DaoVeiculoPSQL

public void cadastrar(Veiculo veiculo)
{
try
{
ps=DaoFactoryPSQL.getConnection().prepareStatement(“insert into veiculo values(?,?,?,?,?,?)”);
ps.setString(1, veiculo.getPlaca());
ps.setString(2, veiculo.getAno());
ps.setString(3, veiculo.getFabricante());
ps.setString(4, veiculo.getMarca());
ps.setString(5, veiculo.getModelo());
ps.setString(6, veiculo.getTipo());

               ps.executeUpdate();
              
           }
           catch (Exception e)
           {
            System.out.println(e.getMessage());
          }
       }