Heim > häufiges Problem > Was ist der Unterschied zwischen # und $ in mybatis

Was ist der Unterschied zwischen # und $ in mybatis

青灯夜游
Freigeben: 2019-04-19 17:19:58
Original
54981 Leute haben es durchsucht

Der Hauptunterschied zwischen # und $ in mybatis ist: #Die eingehenden Parameter werden als Zeichenfolgen in SQL angezeigt. #Diese Methode kann die SQL-Injection weitgehend verhindern. $Die eingehenden Parameter werden direkt als eingehende Parameter in SQL angezeigt, die $-Methode SQL-Injection kann nicht verhindert werden.

Was ist der Unterschied zwischen # und $ in mybatis

MyBatis ist ein hervorragendes Persistenzschicht-Framework, das benutzerdefiniertes SQL, gespeicherte Prozeduren und erweiterte Zuordnung unterstützt. MyBatis vermeidet fast den gesamten JDBC-Code und das manuelle Festlegen von Parametern sowie das Abrufen von Ergebnismengen. MyBatis kann einfaches XML oder Annotationen verwenden, um native Informationen zu konfigurieren und zuzuordnen, Schnittstellen und Java-POJOs (Plain Ordinary Java Object, gewöhnliche Java-Objekte) in Datensätzen in der Datenbank abzubilden.

Dynamisches SQL ist eine der Hauptfunktionen von Mybatis. Nachdem die im Mapper definierten Parameter an XML übergeben wurden, analysiert Mybatis sie dynamisch, bevor sie abgefragt werden. mybatis stellt uns zwei Syntaxen zur Verfügung, die dynamisches SQL unterstützen: #{} und ${}; beide übergeben die erforderlichen Parameter dynamisch an die SQL-Anweisung.

Was ist der Unterschied zwischen # und $ in mybatis

1 Die übergebenen Parameter werden in SQL unterschiedlich angezeigt

#Die übergebenen Parameter werden in SQL als Zeichenfolgen angezeigt (als Zeichenfolge), und den automatisch übergebenen Daten werden doppelte Anführungszeichen hinzugefügt.

Beispiel: Verwenden Sie die folgende SQL

select id,name,age from student where id =#{id}
Nach dem Login kopieren

Wenn die von uns übergebene Parameter-ID „1“ ist, lautet die Analyse der obigen SQL:

select id,name,age from student where id ="1"
Nach dem Login kopieren

$Die eingehenden Parameter sind in SQL wird direkt als übergebener Wert angezeigt

Beispiel: Verwenden Sie das folgende SQL

select id,name,age from student where id =${id}
Nach dem Login kopieren

Wenn die von uns übergebene Parameter-ID „1“ ist, lautet die Analyse des obigen SQL:

select id,name,age from student where id =1
Nach dem Login kopieren

2. # kann das Risiko einer SQL-Injection (Anweisungsspleißung) verhindern; $ kann jedoch keine SQL-Injection verhindern.

3. Die $-Methode wird im Allgemeinen zur Übergabe von Datenbankobjekten wie Tabellennamen verwendet.

In den meisten Fällen wird # häufig verwendet, wenn # verwendet werden kann. In einigen Fällen muss jedoch $ verwendet werden Beim Sortieren von MyBatis müssen Sie darauf achten, $ anstelle von # zu verwenden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen # und $ in mybatis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage