powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Мониторинг изменений в базах данных
25 сообщений из 153, страница 6 из 7
Мониторинг изменений в базах данных
    #39920653
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Так тут конкретно в данном примере усложнение жизни.
Есть метод ЗаписатьВбд(
Внутри нужен String.
Занафига оборачивать в класс new MyClass()
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920682
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это?

Код: java
1.
update(new House(1,2,"d2", "u2")); 
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920694
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это какой-то пробный код или тестовый.

Если-б это была SpringData то там были-б другие методы. Типа.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
interface BaseRepository<T, ID extends Serializable> extends Repository<T, ID> {
 
    void delete(T deleted);
 
    List<T> findAll();
     
    Optional<T> findOne(ID id);
 
    T save(T persisted);
}

...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920700
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо-бы форкнуть какой-то топик относительно репликации CDC через JMX.
И я очень хотел отвязаться от БД. К сожалению получение мета-данных
о таблицах слишком уж по разному работает. И чаще я плевал и подключал
либо v$tables из Oracle или через information_schema.columns в PG.

(автор не переживай это не для тебя. Это отдельная идея).
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920703
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот это?

Код: java
1.
update(new House(1,2,"d2", "u2")); 

да

mayton
К сожалению получение мета-данных
о таблицах слишком уж по разному работает.

Да.
Все что там по ссылке я переделал и попробовал раньше на работах.
Но я все делал без Java. Средствами субд.
Именно по разному работает и специфично.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920752
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Но я все делал без Java. Средствами субд.
Именно по разному работает и специфично.

Я серъезно завис на семантике таких вещей как
- инстанс
- база
- схема (namespace)
- пользователь
Это как город-улица-дом в географии. Сколько сцука ты не придумывай правил
а найдется какая-то СУБД которая либо schema-less. Либо в ней пользователь == схема.
Либо в ней нет базы. Либо она выставляет еще кучу какой-то семантики типа dbo.*
или PUBLIC-пользователь.

Вобщм треш угар и содомия. Я забросил попытки обобщить эти сущности.
Просто без них ничего универсального не получалось.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920754
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане, посмотрите, пожалуйста, почему не работает UPDATE. Я уже всю голову сломал

вот что пытаюсь сделать в main
Код: java
1.
2.
3.
4.
5.
6.
7.
DeterminingDBChangesService service = new DeterminingDBChangesService("jdbc:sqlite:db.sqlite");
        service.drop("houses");
        service.drop("houses_log");
        service.init();
        service.initTrigger();
        service.insert(new House(0,1,"d1","u1")); //отправляем c id 0 в таблице должен сработать автоинкремент, то есть в конкретном примере id будет 1.  Так и выходит [House(id=1, price=1, district=d1, underground=u1, date=2020-01-30 18:00:52)]
        service.update(new House(1,2,"d1","u1"));// хочу обновить строку с id 1


получаю
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
[House(id=1, price=1, district=d1, underground=u1, date=2020-01-30 18:02:21)]
Exception in thread "main" ru.itpark.exception.DataAccessException
	at ru.itpark.util.JdbcTemplate.execute(JdbcTemplate.java:21)
	at ru.itpark.util.JdbcTemplate.executeCreateQuery(JdbcTemplate.java:42)
	at ru.itpark.service.DeterminingDBChangesService.update(DeterminingDBChangesService.java:42)
	at ru.itpark.Main.main(Main.java:16)

Process finished with exit code 1



все ссылки по порядку
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 private static <T> T execute(String dataSource, String sql, PreparedStatementExecutor<T> executor) {
        try (
                Connection connection = DriverManager.getConnection(dataSource);
                PreparedStatement preparedStatement = connection.prepareStatement(sql)
        ) {
            return executor.execute(preparedStatement);
        } catch (SQLException e) {
            throw new DataAccessException();
        }
    }



Код: java
1.
2.
3.
4.
5.
6.
7.
 public static void executeCreateQuery(String dataSource, String sql, PreparedStatementSetter setter) {
        execute(dataSource, sql, pstmt -> {
            setter.set(pstmt);
            pstmt.execute();
            return null;
        });
    }



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public void update(House house) {
        String sql = "UPDATE houses SET price = ?, district = ?, underground = ? WHERE id = ?;";

        JdbcTemplate.executeCreateQuery(dataSource, sql, pstmt -> {
            pstmt.setInt(1, house.getPrice());
            pstmt.setString(2, house.getDistrict());
            pstmt.setString(3, house.getUnderground());
            pstmt.setInt(4, house.getId());
        });
    }
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920756
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя внутри буквочки e - была ценная диагностическая информация. Ты ее - убил. И вместо этого
пере-вызвал своё исключение класса DataAccessException в котором нет ни кода ошибки ни текста
самой причины. Нет также стектрейса.

Код: java
1.
2.
3.
 } catch (SQLException e) {
            throw new DataAccessException();
        }
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920761
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
org.sqlite.SQLiteException: [SQLITE_CONSTRAINT]  Abort due to constraint violation (UNIQUE constraint failed: houses_log.new_id)
	at org.sqlite.core.DB.newSQLException(DB.java:941)
	at org.sqlite.core.DB.newSQLException(DB.java:953)
	at org.sqlite.core.DB.execute(DB.java:854)
	at org.sqlite.jdbc3.JDBC3PreparedStatement.execute(JDBC3PreparedStatement.java:56)
	at ru.itpark.util.JdbcTemplate.lambda$executeCreateQuery$0(JdbcTemplate.java:45)
	at ru.itpark.util.JdbcTemplate.execute(JdbcTemplate.java:19)
	at ru.itpark.util.JdbcTemplate.executeCreateQuery(JdbcTemplate.java:43)
	at ru.itpark.service.DeterminingDBChangesService.update(DeterminingDBChangesService.java:42)
	at ru.itpark.Main.main(Main.java:16)



аа-а, я кажется теперь понял. я же во вторую таблицу записываю изменения. и получается у меня insert уже ушел с id 1 а updatом я опять добавляю во вторую таблицу еще один id 1.
то есть мне надо без id их туда добавлять что ли
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920765
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да, если я триггеры не инициализирую, все нормально работает. тьфу ты , всю голову сломал. Вопрос, как мне организовать логику, чтобы добавление во вторую таблицу при срабатывании триггера срабатывало нормально? думаю, надо просто не учитывать id да и все
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920766
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
И не надо обобщать. Это территория СУБД.
А субд это город. Ты правильно сказал.
А вопрос - что изменилось в городе глупый сам по себе.
Опять же нет обоснования Проблемы....которую решаем.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920767
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrossmasteR
ну да, если я триггеры не инициализирую, все нормально работает. тьфу ты , всю голову сломал. Вопрос, как мне организовать логику, чтобы добавление во вторую таблицу при срабатывании триггера срабатывало нормально? думаю, надо просто не учитывать id да и все
мы не знаем так не видим Модели.
Без нее ни одна задача не решается. Даже цветочные букеты в цветочном магазине.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920769
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

а какая тут модель?

CREATE TABLE IF NOT EXISTS houses(id INTEGER PRIMARY KEY, price INTEGER NOT NULL, district TEXT NOT NULL, underground TEXT NOT NULL);

CREATE TABLE IF NOT EXISTS houses_log(new_id INTEGER NOT NULL, new_price INTEGER NOT NULL, new_district TEXT NOT NULL, new_underground TEXT NOT NULL, date TEXT NOT NULL, operation TEXT NOT NULL);

вот и вся модель.

ошибка была в том, что new id в houses_log был PRIMARY KEY. Убрал и теперь вроде бы как все в порядке
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920771
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrossmasteR
вот и вся модель.
asv79, перелогинься)
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920778
GrossmasteR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
да не, я это я.
Глянул его тему. У asv79 там какие-то продвинутые проблемы уже. А я еще совсем зеленый
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39920785
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrossmasteR,
Неа. Это ты.
- он дату в строках, ты тоже
- он не отвечает на вопросы мемберов в топике, ты тоже
- он гонит код и плевать на _методологию создания ПО_, ты тоже.
GrossmasteR
Убрал и теперь вроде бы как все в порядке

Его коронная фраза.
После этого идет следующий топик или ТЗ
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921148
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
GrossmasteR
вот и вся модель.
asv79, перелогинься)

мне не до форумов ,покрываю тестами наш адаптерсервис
покрывать тестами чужой код,когда сложно понять что хотели сделать авторы и куда и что запрятали -очень весело
мне дебагер уже снится
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921153
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
PetroNotC Sharp
пропущено...
asv79, перелогинься)

мне не до форумов ,покрываю тестами наш адаптерсервис
покрывать тестами чужой код,когда сложно понять что хотели сделать авторы и куда и что запрятали -очень весело
мне дебагер уже снится

Кстати подумай на досуге как составить цифровой потрет sql-участника.
Я думаю если анализировать некоторые особые слова - то можно достаточно
точно указать - что дескыть да. Это Cтас акк поменял
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921156
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас на одной из прошлых работ, похожим образом заказчики определяли авторов отчетов по ошибках (что бы знать, к кому персонально за оперативным исправлением обращаться).

Если запятые - то это Лена
Если буквы в словах - то это Юра

(возможно перепутал местами, но суть думаю ясна)
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921158
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Кстати подумай на досуге как составить цифровой потрет sql-участника.

Запиливай тему с коду

Парсер сайта (если надо), я могу написать
Вопрос, кто готов ИИ (нейронную сеть) разработать
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921159
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве первого приблежения (без ИИ) - база данных слов ==> словарный запас (частота использования слов), типовые ошибки в написании.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921161
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Скорее типовые (любимые) словосочетания.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921168
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton

Кстати подумай на досуге как составить цифровой потрет sql-участника.

Запиливай тему с коду

Парсер сайта (если надо), я могу написать
Вопрос, кто готов ИИ (нейронную сеть) разработать

Я помню что Базист писал парсер сайта. И парсил ПТ чтоб доказать преимущества
своего "движка".

А вот мне все веб-клиенты лень писать. Тоесть могу кошно ... но чёт ломает.
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
У нас на одной из прошлых работ, похожим образом заказчики определяли авторов отчетов по ошибках (что бы знать, к кому персонально за оперативным исправлением обращаться).

Если запятые - то это Лена
Если буквы в словах - то это Юра

(возможно перепутал местами, но суть думаю ясна)

У меня была идея - строить Марковские сети для каждого акка.

Хотя ... может я просто невкурсе современных методов. Типа спамо-фильтров...
...
Рейтинг: 0 / 0
Мониторинг изменений в базах данных
    #39921172
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Надо-бы форкнуть какой-то топик относительно репликации CDC через JMX.
И я очень хотел отвязаться от БД. К сожалению получение мета-данных
о таблицах слишком уж по разному работает. И чаще я плевал и подключал
либо v$tables из Oracle или через information_schema.columns в PG.

(автор не переживай это не для тебя. Это отдельная идея).

Обещал.

Сделал.

https://www.sql.ru/forum/1321816/tyapnichnyy-cdc-jms

Тьфу блин. Конешно же JMS. А я что? JMX написал...
...
Рейтинг: 0 / 0
25 сообщений из 153, страница 6 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Мониторинг изменений в базах данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]