У меня есть следующие функции:Чтение значения из файла свойств во время выполнения
public void execute(Tuple input, BasicOutputCollector collector) {
String term = input.getString(0);
int year = input.getInteger(1);
int month = input.getInteger(2);
int day = input.getInteger(3);
int hour = input.getInteger(4);
int dayofyear = input.getInteger(5);
int weekofyear = input.getInteger(6);
int productcount = input.getInteger(7);
/*
* Inserting Values In Cassandra
*/
String insertUpdateTable = "UPDATE TopQuery SET count = count + 1 "
+ "where term = \'" + term + "\' AND year = " + year
+ " AND month = " + month + " AND day = " + day
+ " AND hour = " + hour + " AND dayofyear = " + dayofyear
+ " AND weekofyear = " + weekofyear + " AND productcount = "
+ productcount + ";";
session.executeAsync(insertUpdateTable);
}
Здесь я буду получать все значения, как term
, year
, month
, day
, hour
, dayofyear
, weekofyear
productcount
и во время выполнения и вставляет его в DB Cassandra.
Поскольку эта строка постоянна и не изменяется, я хочу ее разделить и поместить в файл свойств.
Я уже помещал структуру таблицы в файл свойств и получал ее оттуда. Итак, в будущем, если мне нужно изменить структуру таблицы, мне не нужно редактировать код, вместо этого я могу просто изменить свойства файл.
Но, как сохранить файл insertUpdateTable
в файле свойств, чтобы он считывал данные во время выполнения и обновлял БД?
Вы можете посмотреть на ['Свойства'] (http://docs.oracle.com/javase/8/docs/api/java/util/Properties.html) и [' PreparedStatement'] (http://docs.oracle.com/javase /8/docs/api/java/sql/PreparedStatement.html). Кроме того, есть структурные изменения, которые заставят код быть измененным. Подумайте о добавлении столбца ... – Seelenvirtuose
'PreparedStatement: объект, представляющий предкомпилированный оператор SQL. 'Он работает только для SQL или для других dbs? –
@Seelenvirtuose: Cassandra также поддерживает 'PreparedStatement'. То, что я искал. Спасибо! –