La diferencia entre # y $ en sql

Primero, use # {} aquí, cuando use #:

1. Utilizado para pasar parámetros, sql agregará "" al analizar, como una cadena para analizar, como role_id = "roleid";

2. # {} puede evitar en gran medida la inyección de SQL;

Extensión:

1. Utilice {roleId, jdbcType = INTEGER}, luego el valor de sql al analizar es roleId = roleId, y se informará un error durante la ejecución;

2. El método $ {} no puede evitar la inyección de SQL;

3. $ se usa generalmente para objetos de base de datos entrantes, como nombres de tablas de bases de datos;

4. Intente usar # {} cuando pueda usar # {};

Nota:

Tenga en cuenta que cuando use el orden por parámetros dinámicos al ordenar mybaties, use $ {} en lugar de # {};

 

Segundo, la diferencia principal es # con comillas dobles, $ sin

Por ejemplo: # {id} significa 'id', $ {id} significa id

 

El siguiente es el sql de la anotación Mybatis @Select

@Select ("seleccionar id, nombre del usuario donde id = # {id}") 
public User getUser (@Param ("id") long id); 

@Select ("select id, name from user where id = $ {id}")
public User getUSer (@Param ("id") long id);

Si la identificación pasada es 1, el sql real es

seleccione id, nombre del usuario donde id = '1' 

seleccione id, nombre del usuario donde id = 1

Hay un caso del método Mybaits

@Select ("seleccionar id, nombre del usuario donde id = # {id}") 
public User getUser (@Param ("id") long id);

@Select ("seleccionar id, nombre del usuario donde id = # {id}") 
public User getUser (id largo);

El segundo es porque puede omitir @Param ("") porque pasa un parámetro, pero no puede usar $ {} en este caso.

Al pasar más de dos parámetros, debe escribir @Param ("")

 

Supongo que te gusta

Origin www.cnblogs.com/xxl910/p/12713904.html
Recomendado
Clasificación