Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2010, 08:02
ioel10
 
Fecha de Ingreso: julio-2010
Mensajes: 104
Antigüedad: 14 años, 4 meses
Puntos: 2
Optimización de consultas a bbdd

Buenos días,

Estoy realizando una aplicación escritorio en la que ejecuto un consulta muy parecida unas cuantas veces, del siguiente modo:

Ventana principal:

Código java:
Ver original
  1. claseConsulta.metodoQuery(Connection conexion, parametros);

claseConsulta:
Código java:
Ver original
  1. public variable metodoQuery(Connection conexion, parametros){
  2.      
  3.        try {
  4.             if (conexion == null || conexion.isClosed()) {
  5.                 conexion = conexionPG.reConectar();
  6.             }
  7.         } catch (SQLException ex) {
  8.             log.error(ex);
  9.         }
  10.  
  11.         //Construyo la query        
  12.         String select = "select distinct campo1,  ";
  13.         consulta = consulta + select;
  14.  
  15.         String campo2 = " campo2, ";
  16.         consulta = consulta + campo2;
  17.  
  18.  
  19.         String campo3 = " campo3, ";
  20.         consulta = consulta + campo3;
  21.  
  22.         String from = "from tabla";
  23.         consulta = consulta + from;
  24.  
  25.         String whereC1 = "where campo1 like 'parametros.parametro1' ";
  26.         consulta = consulta + whereC1;
  27.  
  28.         String whereC4 = "and campo4 like 'parametros.parametro2'' ";
  29.         consulta = consulta + whereC4;
  30.  
  31.        try {
  32.  
  33.             PreparedStatement ps = conexion.prepareStatement(consulta);
  34.  
  35.             rs = ps.executeQuery();
  36.  
  37.         } catch (SQLException ex) {
  38.             log.error("daoAlertas\n", ex);
  39.         }
  40.  
  41.         if (rs != null) {
  42.             return rs;
  43.         }
  44.  
  45.         return null;
  46.  
  47. }

Creo que lo más eficiente sería que algunos de los string que forman la consulta se convirtieran en una constante o un valor que me devolviera un método.

¿Cuál de las tres opciones es la óptima?

Un saludo y buen día.