2016-06-29 9 views
0

私のデータベースにspreadhseet.csvからデータを挿入しようとしていますが、ブール値を解析できません。すべての列に対して常にブール値をfalseとして取ります。boolean値をpostgresql DBに解析できません

私のスプレッドシートでは、私は真と偽の両方を持っていますが、私がDBにアップロードするとき、それはすべてのクーミングを偽として保持します。

私は値(真と偽)の両方必要TRUEまたはFALSE

としてブール値を持つ属性IN_SERVICE解析しようとしています

希望私は右のそれをやっていますか?私の答えのために申し訳ありません

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インジェクションの警告非常に高いです! – Reimeus

+0

SQLクエリでないjavaコードでエラーが発生する –

+1

parseBooleanでJavadocを読み込んだ場合(https://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html#parseBoolean java.lang.String))、それが真を返す唯一の方法は、それが解析するStringが大文字小文字を区別しない "true"の値である場合です。 – Orin

答えて

0

しかし、本当の問題は、なぜあなたはJPA(Javaの永続化API)を使用してデータベースを処理していないのですか? (エンティティマネージャー、クエリ、など...)

挿入文(連結)のようなもので、可能なSQLインジェクション攻撃(私はReimeusに同意する)

関連する問題