Проектный контекст:
В проектах телекоммуникационной отрасли часто используются базы данных Oracle, и оптимизация запросов SQL основана на плане выполнения Oracle.
Hibernate сталкивается с трудностями в эффективной оптимизации SQL при работе с большими табличными связями, что требует наличия настраиваемого инструмента класса ibatis, который можно быстро развернуть.
Почему не ibatis?
Ibatis ориентирован на ORM и операции JDBC, пытаясь объединить их, но на практике это не даёт хороших результатов. Конфигурация ORM сложна, а JPA является будущим основным направлением.
Дизайн расширенного API для постраничного поиска не очень хорош, и его реализация может быть сложной. В этом отношении интерфейс org.hibernate.dialect.Dialect разработан лучше.
После изменения SQL в Ibatis невозможно реализовать горячее развёртывание конфигурации SQL.
Позиционирование MyJdbcTemplate:
Расширение JdbcTemplate для настройки SQL.
Улучшенная поддержка физического постраничного SQL для различных баз данных, таких как MySQLDialect и OracleDialect.
Реализация онлайн-развёртывания конфигурации SQL.
Упрощение конфигурации кэширования: результаты SQL-запросов кэшируются на основе SQLKEY.
Использование MAP и LIST в качестве типов данных возвращаемых результатов, обеспечивая хорошую конвертацию в формат JSON для взаимодействия с пользовательским интерфейсом (UI).
Частично реализованы API запросов (ORM-функциональность может быть реализована через JPA + Hibernate).
Добавлены функции для однотабличных операций вставки, обновления и удаления:
Пример: custChannelPlan ---> cust_Channel_Plan таблица с полями: (plan_Id varchar2(10), contact varchar2(10)).
Выполняется SQL: INSERT INTO cust_Channel_Plan (plan_Id , contact ) VALUES ( '1' , '111');
Примеры вызовов JavaScript (JS):
POST-запрос для новой вставки: $.ajax({ url: '/sqlservice/custChannelPlan?planId=1&contact=1111', type: 'post' });
GET-запрос для запроса SELECT: $.ajax({ url: '/sqlservice/custChannelPlan?planId=1&contact=1111', type: 'get' });
PUT-запрос для обновления UPDATE: $.ajax({ url: '/sqlservice/custChannelPlan?planId=1&contact=1111', type: 'put' });
DELETE-запрос для удаления DELETE: $.ajax({ url: '/sqlservice/custChannelPlan?planId=1&contact=1111', type: 'delete' });
Подробные примеры кода см. в MyJdbcTest:
Постраничный запрос.
Горячее развёртывание кода.
Стратегия кэширования.
Недостаток: отсутствие функций ORM.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )