[Java] SQL Escaping...

Pagina: 1
Acties:

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
another simple vraagje

mijn client genereert SQL statements als pure Strings. Nu moet ik natuurlijk de content (bijvoorbeeld SET sometext=' i'm very stupid not knowing this') escapen maar nu vind ik nergens wat de standaard escape character van SQL is (standaard).

ik kan (of wil) geen PreparedStatement gebruiken omdat ik niet wil dat mijn client -app de JDBC driver code (classe) moet gebruiken (ik XML-RPC mijn statements via encryptie naar een servlet die het spul uitvoert en terugstuurt)...

de enige die werkt is ' zelf dus ' i''m very stupid' werkt wel op mijn MySQL. maar hangt het dan af van elke SQL implementatie welke character geescaped moeten worden?

Verwijderd

PreparedStatement is ook alleen maar interessant op het moment dat je een query 2 keer gebruikt. zelf maak ik altijd gebruik van de html standaard.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Waarom zou je de string willen escapen op je client?
Laat hem gewoon in de server methode de boel ( dus de parameters voor de query, niet de query zelf ) parameteriseren en inserten in een prepared statement en dat invoken :)

Dan ligt er op de server je SQL versie vast, niet op je client. Hell er ligt zelfs voor de client helemaal niet vast dat ie met een SQL server werkt :)
(BTW ' is de SQL ANSI manier van escapen :) )

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
yow! thx - ik had ook eerst prepareStatements hoor maar die zijn alleen sneller bij ongeveer 1000 updates/inserts en anders zijn ze een pak trager.

Overigens ben ik volledig akkoord dat je eigenlijk niet meer met SQL moet knoeien - vandaar dat een ander deel v/h project OJB gebruikt (zalig, alhoewel ik al een beter idee heb - imho) en ook voor de rest wordt er bijna geen gebruik van gemaakt - behalve natuurlijk het deel van de code die van OO naar SQL moet (ik gebruik deze ALLEEN bij mijn gewone MySQL database naar een 'echte' Relational (cascasding, foreign keys) en dat kan nogal wat queries opleveren...

maar ' is dus SQL ANSI en dat moest ik weten... (gerust hart enzo ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-08 23:02
Eigenlijk zou je altijd stored procedures moeten gebruiken ipv SQL code in je clients te gebruiken.

https://fgheysels.github.io/


Verwijderd

whoami schreef op 04 March 2003 @ 08:01:
Eigenlijk zou je altijd stored procedures moeten gebruiken ipv SQL code in je clients te gebruiken.
Je moet toch een keer terugkoppelen, sql is dan toch wel de mooiste manier...

  • jochemd
  • Registratie: November 2000
  • Laatst online: 08-08 15:51
Je zal naastde single quote toch echt ook de backslash moeten escapen in veel databases (PostgreSQL, Oracle, MySQL). Het wordt pas echt leuk als je bedenkt dat deze regels voor bepaalde datatypes anders zijn dan voor andere (BLOB) en als je bedenkt dat je er ook nog even rekening mee moet houden dat veel databases op een aparte manier multi-byte characters escapen.
Pagina: 1