eduardosavoine

gerarWherePesquisa

Sep 22nd, 2011
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1.  /**** para utilizar a função faço da seguinte forma ****/
  2.  /** FALTA IMPLEMENTAR TRATAMENTO COM DATA **/
  3.  
  4. User_DTO dadosPesquisa = new User_DTO();
  5. dadosPesquisa.id = 1;
  6. dadosPesquisa.nome = "TESTE";
  7.  
  8.     public static String retornaWhere(String nomeTabela, ADPB020_DTO dadosPesquisa)
  9.     {
  10.         String result = "";
  11.      
  12.         Class classe = dadosPesquisa.getClass();
  13.         Field[] fields =  classe.getDeclaredFields();
  14.  
  15.         for (int i=0; i<fields.length; i++)
  16.         {
  17.             try
  18.             {
  19.                 if (fields[i].get(dadosPesquisa) != null)
  20.                 {
  21.                     if (fields[i].getType().equals(String.class))
  22.                     {
  23.                         if (!fields[i].get(dadosPesquisa).toString().equals("") && fields[i].get(dadosPesquisa).toString().length() > 0)
  24.                         {
  25.                             if (!result.equals("") && result.length() > 0)
  26.                                 result += " AND " + retornaTabela(nomeTabela, fields[i].getName()) + " LIKE '%" + fields[i].get(dadosPesquisa) + "%' ";
  27.                             else
  28.                                 result = "WHERE " + retornaTabela(nomeTabela, fields[i].getName()) + " LIKE '%" + fields[i].get(dadosPesquisa) + "%' ";                        
  29.                         }
  30.                     }
  31.                     else
  32.                         if (fields[i].getType().equals(Integer.class) || fields[i].getType().equals(int.class))
  33.                         {                      
  34.                             if ((Integer)fields[i].get(dadosPesquisa) > 0)
  35.                             {
  36.                                 if (!result.equals("") && result.length() > 0)
  37.                                     result += " AND " + retornaTabela(nomeTabela, fields[i].getName()) + " = " + fields[i].get(dadosPesquisa);
  38.                                 else
  39.                                     result = "WHERE " + retornaTabela(nomeTabela, fields[i].getName()) + " = " + fields[i].get(dadosPesquisa);                                                         
  40.                             }
  41.                         }                    
  42.                         else
  43.                             if (fields[i].getType().equals(Date.class))
  44.                             {
  45.                                  
  46.                             }
  47.                 }
  48.             }
  49.             catch(Exception e)
  50.             {  
  51.                 JOptionPane.showMessageDialog(null, "Erro gerar instrução WHERE da tabela " + nomeTabela + ": " + e);
  52.                 e.printStackTrace();            
  53.             }  
  54.         }
  55.         return result;
  56.      }
  57.    
  58.     public static String retornaTabela(String nomeTabela, String nomeCampo)
  59.     {
  60.         String result = "";
  61.  
  62.         if (nomeCampo.length() > 8)
  63.         {
  64.             if (nomeCampo.substring(7, 8).equals("_"))
  65.                 result = nomeCampo.replace("_", ".");
  66.             else
  67.                 result = nomeTabela + "." + nomeCampo;
  68.         }
  69.         else
  70.             result = nomeTabela + "." + nomeCampo;
  71.        
  72.         return result;
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment