2016-06-29 11 views
0

Ich versuche, Daten von spreadhseet.csv in meine Datenbank einzufügen, aber nicht den booleschen Wert zu analysieren. Es nimmt immer booleschen Wert als falsch für alle Spalten.Kann nicht booleschen Wert in PostgreSQL zu DB

In meiner spreadhset, ich habe sowohl wahr als auch falsch, aber wenn ich in DB hochladen, hält es alle coumns als falsch.

Ich versuche in_service Attribut zu analysieren, die Boolesche Werte als wahr oder falsch

I hat müssen beide Werte (wahr und falsch)

Hoffe, dass ich es richtig mache?

try { 
      // read line 
      String[] fileData; 
      String line = dis.readLine().replaceAll("\"", ""); 
      fileData = line.split(","); 
      int tripID = Integer.parseInt(fileData[0]); 
      int driver_id = Integer.parseInt(fileData[1]); 
      String timestamp = fileData[2]; 
      boolean in_service = Boolean.parseBoolean(fileData[3]); 
      int trips_pos = Integer.parseInt(fileData[4]); 
      double lat = Double.parseDouble(fileData[5]); 
      double lon = Double.parseDouble(fileData[6]); 
      int parish_id = Integer.parseInt(fileData[7]); 
      double distance = Double.parseDouble(fileData[8]); 
      int duration = Integer.parseInt(fileData[9]); 
      int trip_id = Integer.parseInt(fileData[10]); 
      double taxi_fare = Double.parseDouble(fileData[11]); 



      String query = " INSERT INTO aid_atidivyakumarpatra " 
        + "(id, driver_id, date, in_service, trips_pos, lat, lon, point, parish_id, distance, duration, trip_id, taxi_fare)" 
        + "VALUES ("+tripID+","+driver_id+",'"+timestamp+"',"+in_service+","+trips_pos+"," 
        + lat+","+lon+",ST_GeomFromText('POINT("+lon+" "+lat+")', 4326) , "+parish_id+","+distance+","+duration+", " 
        + trip_id +","+taxi_fare +")"; 
+1

SQL-Injection-Alarm! – Reimeus

+0

Der Fehler ist mit dem Java-Code nicht mit der SQL-Abfrage –

+1

Wenn Sie das Javadoc auf ParseBoolean lesen (https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#parseBoolean (java.lang.String)), es sagt, dass die einzige Art, wie es wahr zurückgibt, ist, wenn der String, den es analysiert, gleich der Groß-/Kleinschreibung von "wahr" ist. – Orin

Antwort

0

Sorry für meine Antwort, aber die eigentliche Frage ist, warum Sie nicht Datenbank Umgang mit JPA (Java Persistence API)? (Entity-Manager, Query, etc ...)

Mit dieser Art von Insert-Anweisungen (Verkettung), ist sehr hoch der mögliche SQL-Injection-Angriff (Ich stimme mit Reimeus)

Verwandte Themen