CSVファイルから読み取り、挿入ステートメントを生成して実行することにより、その内容をDBに保存するメソッドの一部として、次のコードがあります。
....
try
{
while( (strLine = br.readLine()) != null)
{
query = baseQuery;
st = new StringTokenizer(strLine, ",");
while(st.hasMoreTokens())
{
token = st.nextToken();
if("TIMESTAMP".equals(values.get(tokenNumber)))
query += "'" + GeneralMethods.dateFormat(token) + "' , ";
else
query += "'" + token + "' , ";
}
query = query.substring(0, query.length()-2) + ")";
ds.insertData(query );
}
} catch (IOException e)
{
logger.error("IOException Occured while trying to read lines of CSV file: \n " + e.getMessage());
status = false;
}
クエリが空の値で生成されることを除いて、すべて正常に機能します。これはログに出力されます。
Failed to execute query: INSERT INTO c1_ds1 ( TIME , USER ) VALUES ('' , '' )
問題は次の 2 行にあると思います。
if("TIMESTAMP".equals(values.get(tokenNumber)))
query += "'" + GeneralMethods.dateFormat(token) + "' , ";
else
query += "'" + token + "' , ";
ログに (トークン) 変数を出力しましたが、CSV ファイルから値を取得しています。誰が問題がどこにあるか知っていますか?
私もこれを試しました:
query += "'"; query += token;