2016-07-15 17 views
0

Ich versuche, eine Verbindung zur Oracle-Datenbanktabelle herzustellen und die Daten abzurufen und das Ergebnis in Form kommagetrennter Werte zu erstellen. Ich habe einen Beispielcode geschrieben, der gut funktioniert, aber einen besseren Ansatz haben wollte, wenn die Abfrage mit mehr Tabellen (Joins) verknüpft ist, dann wird die Zeit benötigt, um die Ausgabe zu erhalten. Gibt es einen besseren Weg, die Leistung zu verbessern?Groovy Better Approach zum Erstellen einer kommagetrennten Zeichenfolge aus der Datenbank Abfrage auswählen

import groovy.sql.Sql; 
import java.sql.ResultSet; 

def temp=""; 
def temp1=""; 
sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE","username", "password", "oracle.jdbc.driver.OracleDriver") 
sql.eachRow("select empid, empname FROM employee") { 
    temp1=it.toRowResult().values().join(", ") 
    if(temp=="") { 
     temp=temp1; 
    }else{ 
     temp=temp+"\n"+temp1 
    }   
} 

Antwort

0

Sie können empid || auswählen ',' || empname als NewValue FROM employee in Ihrer Abfrage, dann

+0

Ich habe auf diese Weise versucht, ein wenig für Sie SQL Arbeit und bin immer Ergebnis als Array. Ich konvertiere das Array in Zeichenfolge mit der Join-Methode, die mehr Zeit in Anspruch nimmt. Derzeit schreibe ich diese Ausgabe in keine der Datei. Ich habe einen besseren Ansatz erwartet, wie dies in Groovy erreicht werden kann. –

1
CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), ','); 
Boolean includeHeaders = true; 

java.sql.ResultSet myResultSet = .... //your resultset logic here 

writer.writeAll(myResultSet, includeHeaders); 

writer.close(); 
Verwandte Themen