Выбор базы данных и имени таблицы из запроса, хранящегося в переменной String в Java - PullRequest
0 голосов
/ 21 мая 2018

У меня есть строка, содержащая запрос

String query=" select * from abc.xyz";

Где abc - это мое имя базы данных, а xyz - это имя моей таблицы.Как я могу получить эти два в две отдельные переменные в Java

Ответы [ 3 ]

0 голосов
/ 21 мая 2018
connection.getSchema()

метод get схемы вашего объекта соединения может дать вам БД, если вы используете одну БД в своем приложении.По поводу названия таблицы.Если это просто, то разделение всего после от может дать вам имя таблицы

0 голосов
/ 21 мая 2018

Прежде всего, вам нужно найти начальную точку имени базы данных.После ключевого слова from введите подстроку.

Вы можете попробовать так:

      String query=" select * from abc.xyz";
      String str = query.substring(query.indexOf("from")+5);
      String db = str.substring(0,str.indexOf('.'));
      String table = str.substring(str.indexOf('.')+1);

      System.out.println("db = "+db);
      System.out.println("table = "+table);
0 голосов
/ 21 мая 2018

Попробуйте с split:

String[] parts = query.split(" ");
String part = parts[3]; // abc.xyz
parts = part.split(".");
String dbName = parts[0] // db name
String table = parts[1]  // table name

Если вам нужно извлечь имя bd и имя таблицы по динамическим запросам, вы можете сделать следующее:

String[] parts = query.split(" ");
int i;
for(i=0; i<query.lenght, i++){
    if(query[i].equals("from") || query[i].equals("FROM")){
        break;
    }
}
String part = parts[i++]; // abc.xyz
parts = part.split(".");
String dbName = parts[0] // db name
String table = parts[1]  // table name

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...