Код Java для динамической передачи значений в оператор SQL [закрыто]JAVA

Программисты JAVA общаются здесь
Anonymous
Код Java для динамической передачи значений в оператор SQL [закрыто]

Сообщение Anonymous »


Изображение

Значения таблицы введите здесь описание изображения введите описание изображения здесь введите описание изображения здесь
Привет всем, я пытаюсь написать Java-код, в котором я хотел бы сформировать оператор типа «выберите * из ABC, где РАЗНЫЕ УСЛОВИЯ»
Если есть DATE_START и DATE_END, то должна быть SYNTAX DATE между '0' и '99210331'
например, DATE между '0' и '99210331'
Если есть TIME_START и TIME_END он должен иметь СИНТАКСИСНОЕ ВРЕМЯ между '0' и '220000'
например, ВРЕМЯ между '0' и '220000'
Если нет ПРЕФИКСА _START и _END, он должен иметь СИНТАКСИСНЫЙ ГОД В '2015'
Например, ГОД В '2015'
Ниже приведен код, который я написал. В основном он работает, когда я намеренно жестко закодирую переменные и передаю значения, но не будет работать, если я хочу читать и передавать ДИНАМИЧЕСКИ

Код: Выделить всё

CharSequence searchString = "DATE_START";
CharSequence searchString2 = "DATE_END";
CharSequence searchString3 = "TIME_START";
CharSequence searchString4 = "TIME_END";
CharSequence searchString5 = "END";
CharSequence searchString6 = "START";
String param_name2 = String.valueOf( input_row.param_name );
String param_value2 = String.valueOf( input_row.param_value );

if (param_name2.contains(searchString))
{
globalMap.put("DATE_START",param_value2 );
System.out.println( "StartDate: " + globalMap.get("DATE_START"));
}
if (param_name2.contains(searchString2))
{
globalMap.put("DATE_END",param_value2);
System.out.println( "DATE_END: " + globalMap.get("DATE_END"));

}
if  (param_name2.contains(searchString3))
{
globalMap.put("TIME_START",param_value2);
System.out.println( "TIMEStart: " + globalMap.get("TIME_START"));

}
if (param_name2.contains(searchString4))
{
globalMap.put("TIME_END",param_value2);
System.out.println( "TIME_END: " + globalMap.get("TIME_END"));
}
if (!(param_name2.contains(searchString5)) && !(param_name2.contains(searchString6)) )
{
globalMap.put("ALL",param_value2);
System.out.println( "ALL: " + globalMap.get("ALL"));
globalMap.put("REST",param_name2);
System.out.println( "REST: " + globalMap.get("REST"));
}
if (!(param_name2.contains(searchString5)) && !(param_name2.contains(searchString6)) )
{
context.FINALQuery = context.query+ " where DATE BETWEEN '" +globalMap.get("DATE_START")+ "' and '" +globalMap.get("DATE_END")+ "' AND TIME BETWEEN '" +globalMap.get("TIME_START")+ "' and '" +globalMap.get("TIME_END")+ "' and " +globalMap.get("REST")+ " IN '" +globalMap.get("ALL")+ "';";

}


Любые предложения по написанию Java-кода для динамической передачи значений.
Например.
это не будет работать, если у нас есть 2 YEAR1 и YEAR2, поскольку это жестко запрограммировано
это не будет работать, если у нас НЕТ YEAR1 и YEAR2, ACDAT_START & ACDAT_END, так как это жестко запрограммировано

Подробнее здесь: https://stackoverflow.com/questions/787 ... -statement

Вернуться в «JAVA»