Я создал оператор SQL, используя конструктор myBatis SQL, но я собираюсь найти документацию о том, как выполнить строку после ее создания. В настоящее время у меня есть следующее:
CONTROLLER:
@GetMapping("/simpleQuery/{schema}/{fromTable}")
public List <Object> getAllDataFromTable (@PathVariable String schema, @PathVariable String fromTable){
//return queryMapper.getSimpleQueryResults(schema, fromTable);
return queryService.selectDataFromTable(schema, fromTable);
}
SERVICE - где строится SQL строка
public List<Object> selectDataFromTable(String schema, String fromTable){
String selectDataFromTable = new SQL(){{
SELECT ("*");
FROM (schema + "." + fromTable);
}}.toString();
return queryMapper.getSimpleQueryResults(selectDataFromTable);
}
System.out.println(selectDataFromTable);
Я напечатал SQL Выведите строку на консоль, и она будет выглядеть следующим образом:
SELECT *
FROM DB.SOMETABLENAME
ОБНОВЛЕНИЕ: Я также попытался создать строку sql, например:
String selectDataFromTable = "SELECT * FROM " + schema +"." + fromTable;
, чтобы запрос был единым строка, но я все еще получаю те же результаты / ошибка
MAPPER - sql строка обрабатывается
@Select("#{sql}")
List <Object> getSimpleQueryResults(String sql);
Запрос выполняется, но возвращается ошибка:
Invalid SQL type: sqlKind = UNINITIALIZED
Так как же получить строку SQL для выполнения с использованием mybatis в Springboot?
ПРИМЕЧАНИЕ. Я использую аннотацию, а не XML.
Спасибо