Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/11/2011, 17:31
Avatar de calichecal
calichecal
 
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 15 años, 9 meses
Puntos: 12
Respuesta: Consulta SQL Constructores, etc

claro ,


pon le cuidado que si tu insertas en el jtextfield:
Código:
hola'como'estas
,

la sentencia queda:

Código:
select * from tabla where columna = 'hola'como'estas'

toda una locura, eso lo solucionas con:


"select * from tabla where columna like ' " +p.replace("'","''")+" ' ")

o limitando los caracteres permitidos para el jtextfield con la clase:

Código:
public class LimCaracteres extends PlainDocument {
    


    private JTextField editor;
 

  
    public LimCaracteres(JTextField editor) 
    { 
        
        this.editor=editor;
        
    } 
     
    
   
    public void insertString(int arg0, String arg1, AttributeSet arg2) throws BadLocationException 
    { 

          
        

        boolean cumple = false;
        int ascii = arg1.charAt(0);

// los caracteres que permito yo solo son los mas utilizados en escritura y que no //son peligrosos para consultas sql (no verificado :P)
        if ((ascii > 63 && ascii < 92) || (ascii > 96 && ascii < 124) || ascii == 125 || ascii == 249 || ascii == 32 || ascii == 40 || ascii == 41 ) {
            cumple = true;
        } else if ((ascii > 47 && ascii < 63) || (ascii > 42 && ascii < 47) || (ascii > 34 && ascii < 38) || ascii == 93 || ascii == 63 || ascii == 34 || 
                   (ascii > 127 && ascii < 169)) { 
            cumple = true;
        }

        if (!cumple) {
            return;
        }
         super.insertString(arg0, arg1, arg2); 
    } 
     
}
la utilizaciòn:

Código:
jTextField1.setDocument(new LimCaracteres(jTextField1));
todo esto es bastante amplio pilla lo que se le pues insertar al jTextField1:


jtexfield que pide un nombre:
Código:
"Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%"
saludos... :)
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-