sql >> Databasteknik >  >> RDS >> SQLite

execSQL:är bindargs bättre?

Metod 1 är bättre.

Den räddar dig till exempel från SQL-injektion.
Eftersom den hanterar datatyperna åt dig.

Det betyder att den konverterar strängarna vid behov genom att lägga till strängavgränsare och konvertera apostroferna.

Dvs:

För att fungera korrekt bör du skriva metod 2 gillar

db.execSQL("INSERT INTO " + TableName + " VALUES (null, '" +  type.getName().replace("'", "''") + "')");

Så...

is the 1st example more secure? Ja.
faster when executing? Inte säker på om det är det.
easier to read Ja, när du väl har vant dig (främst opinionsbaserad).
... or is it the same? Nej, för det som diskuterats ovan.




  1. Infoga blob i Oracle-databasen med C#

  2. Returnera en lista med tabeller från en länkad server i SQL Server (T-SQL-exempel)

  3. Hur ON CONFLICT fungerar i SQLite

  4. Hur man löser oförmögen att byta kodningsfel när XML infogas i SQL Server