2016-04-05 3 views
0

Ich habe eine Zeichenfolge, die jede Art von SQL-Anweisung halten kann (wählen, aktualisieren, löschen, einfügen)Wie schreibe ich Spalten- und Tabellennamen in einer SQL-Anweisung (Java) in Großbuchstaben?

ich die Spalte und Tabellennamen in dieser Aussage in Großbuchstaben wollen.

Sagen wir, wir haben:

select id from person where name="Dave" 

Und ich will

select ID from PERSON where NAME="Dave" 

Bis jetzt habe ich einige SQL-Parser in Java gefunden haben, aber ich frage mich, ob es eine andere ist schneller einfacher Art und Weise, dass das Parsen die SQL und den Wiederaufbau.

EDIT

einfach die Frage weiter zu klären, ist die Datenbanksortierung in der Türkei und das Problem, dass ich das zu lösen versuche, ist „Türkisch i Problem“. Die Namen der Spalten/Tabellen in DB sind alle in Großbuchstaben, aber die Java-Anwendung generiert SQL-Anweisungen mit Kleinbuchstaben Spalten und Tabellen

+0

Wenn bei der Sortierung die Groß- und Kleinschreibung nicht beachtet wird, wird die gesamte Abfrage nur groß geschrieben. TSQL unterscheidet nicht zwischen Groß- und Kleinschreibung. Wenn nicht, sollten Sie trotzdem Parameter verwenden, also Ihre Abfrage in Großbuchstaben, dann binden. –

+0

Können Sie Ihre Sortierfolge * database * nicht so ändern, dass die Groß-/Kleinschreibung nicht beachtet wird, aber bei Ihren Spalten die Groß-/Kleinschreibung beachtet werden muss, falls erforderlich? –

Antwort

0

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstehe, aber wenn Sie die spezifische Spalte abrufen möchten Name in Großbuchstaben dann würde Ihre Abfrage wie aussehen,

SELECT id AS ID FROM person WHERE name = "Dave"; 
1

Sie sollten vorbereitete Anweisungen mit Bind-Variablen verwenden. Auf diese Weise können Sie Ihre Abfrage in Großbuchstaben umwandeln und Bind Variablen in den gewünschten Fall einfügen.

Zum Beispiel:

String query = "select id from person where name=?" 
Connection con = .... ; 
PreparredStatement ps = con.prepareStatement(query.toUpperCase()); 
ps.setString(1, "Dave"); 

ResultSet rs = ps.executeQuery(); 

Hoffnung, das hilft.

0

Sie können etwas tun:

public String queryText(final String message, final String... args) { 
    return String.format(message.toUpperCase().replace("?", "%s") + "%n", args); 
} 

Und es so nennen:

System.out.println(queryText("select id from person where name=?", "Dave")); 

Ausgang: SELECT ID FROM PERSON WHERE NAME = Dave

Hoffe, es hilft

Verwandte Themen