Wie zitieren / entziehen Sie Bezeichner wie Spaltennamen mit JDBC?

8

Unterschiedliche Datenbankserver verwenden unterschiedliche Möglichkeiten zum Angeben und Entkommen von Bezeichnern.

z. "foo bar" vs "foo bar" vs [foo bar] oder "10" "vs" 10 "" oder Bezeichner wie FooBar oder Array müssen für einige Datenbanken zitiert werden, aber nicht für andere.

>

Gibt es eine API-Methode, die das Anführungszeichen korrekt für eine bestimmte Datenbankverbindung ausführt? Oder irgendeine alternative Lösung?

    
aditsu 10.01.2010, 19:04
quelle

2 Antworten

3

Ich denke, die Antwort auf Ihre Frage ist, dass Sie, wenn Sie eine datenbankneutrale Anwendung mit JDBC schreiben, datenbankneutrale Namen verwenden müssen, und keine Dinge, die ein spezielles Entweichen pro Datenbankanbieter erfordern.

Es gibt nichts, von dem ich in der JDBC weiß, das das unterstützt. Ein ORM-Produkt wird sich mit solchen Dingen befassen.

Edit: Wenn Sie ein ORM schreiben, würde ich denken, dass Sie für jede unterstützte Datenbank eine separate SQL-Generierungsklasse benötigen, nur um die verschiedenen beteiligten Syntax zu behandeln, also müssten Sie das schreiben. Sie können sicherlich den Quellcode der verschiedenen Open-Source-ORMs ansehen und sehen, wie sie damit umgehen.

    
Yishai 10.01.2010, 19:14
quelle
12

Sehen Sie sich

an %Vor%

Ich habe es nie benutzt, aber es hört sich gut an :-)

getExtraNameCharacters() könnte auch hilfreich sein

    
Carlos Heuberger 10.01.2010 21:24
quelle

Tags und Links