1. # Trate todos los datos entrantes como una cadena y agregue cotizaciones dobles a los datos entrantes automáticamente. Por ejemplo: ordene por #user_id #, si el valor pasado es 111, entonces el valor al analizar a SQL es ordenar por "111". Si el valor se pasó IS ID, el analizado en SQL se ordena por "ID".
2. $ Muestra los datos aprobados directamente y los genera en SQL. Por ejemplo: orden por $ user_id $, si el valor pasado es 111, entonces el valor cuando se analiza en SQL es ordenado por User_ID. Si el valor pasado en IS ID, el analizado en SQL es orden por ID.
3. El método # puede evitar enormemente la inyección de SQL.
4. El método $ no puede evitar la inyección de SQL.
5. El método $ se usa generalmente para pasar en objetos de base de datos, como pasar los nombres de las tabla.
6. Generalmente, si puede usar #, no use $.
Al usar el orden por parámetros dinámicos al clasificar MyBatis, debe prestar atención a usar $ en lugar de #
Reemplazo de cuerdas
Por defecto, el uso de la sintaxis de formato #{} hace que MyBatis cree una propiedad de declaración preprocesada y establezca un valor seguro con ella como fondo (como?). Esto es seguro y rápido, y a veces solo desea insertar una cadena que no cambie directamente en la instrucción SQL. Por ejemplo, como orden, puede usarlo así: orden por $ {columnName}
Aquí MyBatis no modificará ni escapará de las cuerdas.
IMPORTANTE: No es seguro aceptar la salida de contenido del usuario y proporcionarla a una cadena sin cambios en la declaración. Esto puede conducir a posibles ataques de inyección SQL, por lo que no debe permitir que los usuarios ingresen a estos campos, o generalmente escapen y los revisen usted mismo.
Lo anterior es la breve discusión sobre la diferencia entre # y $ en mybatis. Espero que todos puedan apoyar a Wulin.com ~