1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/automvc-bee

Клонировать/Скачать
Changed_Log_CN.md 70 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 22:58 1b71ede

Bee

工欲善其事必先利其器!——《论语·卫灵公》

Bee — это Java ORM-фреймворк, который помогает ускорить разработку и упростить кодирование.

Bee имеет сложность O(1), то есть с помощью Bee можно не писать дополнительный код для работы с DAO, независимо от количества таблиц.

Подробное описание функций:

  • Поддержка различных баз данных (MySQL, MariaDB, Oracle, H2, SQLite, PostgreSQL и др.).

V1.0

  • Однотабличные операции Suid (select, update, insert, delete) в объектно-ориентированном стиле, где методы соответствуют операциям Suid базы данных.
  • Автоматическое создание Javabean на основе таблиц или представлений базы данных.
  • Конвенция предпочтительнее конфигурации: Javabean не требует аннотаций или XML, достаточно чистого Javabean (зачем обременять Javabean такими сложностями?).
  • Автоматическое сопоставление столбцов таблицы с полями.
  • Поддержка примитивных типов в Javabean, таких как int и double.
  • Использование PreparedStatement для предотвращения SQL-инъекций.
  • Поддержка хранимых процедур.
  • Поддержка нативного SQL.
  • Пакетная обработка операций.
  • Транзакционная поддержка.
  • Автоматическая фильтрация null и пустых строк (по умолчанию).
  • Поддержка функций SQL: MAX, MIN, SUM, AVG, COUNT.
  • Сортировка и разбиение на страницы в SQL.
  • Возможность запроса только части полей.
  • Динамические/произвольные условия запросов без необходимости заранее определять интерфейсы DAO или изменять их при добавлении новых запросов.
  • Все операции Suid используют один и тот же интерфейс bee, нет необходимости определять новые интерфейсы DAO. Разработчику нужно только знать, как вызывать интерфейс bee.

V1.1

  • Поддержка возврата результатов запросов в формате JSON.
  • Поддержка хранимых процедур (CallableStatement.executeQuery).

V1.2

  • Пользовательские SQL-запросы с использованием параметров #{para} для установки значений, например: name = #{name}; поддержка LIKE запросов: #{%para%}, #{%para}, #{para%}

V1.3

  • Добавление возможности цепочки вызовов методов select.

V1.4

  • Добавлены методы: selectById и deleteById.
  • Добавлен метод public <T> List<T> select(T entity, String selectFields, int start, int size).
  • Добавлена возможность настройки конфигурации ignoreNull для запросов selectJson.
  • Добавлена поддержка списков с указанием формата даты, времени и метки времени с миллисекундами.
  • Добавлен метод List<String[]> select(String sql) с возможностью настройки конфигурации nullToEmptyString.
  • Усовершенствован механизм кэширования результатов запросов (одноуровневый кэш может быть прозрачным для пользователя и настраиваемым).
  • Добавлена аннотация SysValue.

V1.5

  • Добавлен интерфейс NameTranslate и реализация по умолчанию для преобразования имён между Java и базой данных.
  • Поддерживаются файлы jdbcTypeToFieldType-{DbName}.properties для настройки отображения типов столбцов базы данных на типы Java.
  • Улучшена поддержка типов Oracle; поддерживается множество баз данных с возможностью сопоставления типов через файлы jdbcTypeToFieldType-{DbName}.properties.
  • Расширена поддержка сопоставления имён сущностей и таблиц, что оптимизирует преобразование имён таблиц в имена сущностей.
  • Фильтрация недопустимых типов сущностей.
  • Создан инструмент для генерации файлов.
  • Доработана функция разбиения на страницы и добавлена поддержка пользовательских расширений.
  • Исправлена ошибка Oracle JDBC при работе с базой данных ORA-00911.
  • Перегружены методы op и OperationType (в enum Op).

V1.6

  • В Suid добавлены сложные запросы в объектно-ориентированном стиле.
  • Интерфейс Suid расширен методом public <T> List<T> select(T entity, Condition condition), поддерживающим запросы диапазона, а также использование запросов диапазона, нечеткого поиска, in, >, >=, <, <=, группировки, фильтрации с условием having, сортировки и разбивки на страницы.
  • SuidRich поддерживает сложные запросы.
  • Методы интерфейса SuidRich: select(T entity, IncludeType includeType, Condition condition) и selectJson(T entity, IncludeType includeType, Condition condition).
  • Метод обновления в SuidRich: updateBy(T entity,String whereFieldList) и updateBy(T entity,String whereFieldList,IncludeType includeType).
  • Добавлен класс SqlNullException в PreparedSqlLib.
  • V1.6.1:
    • Методы, связанные с PreparedSql, получили параметры start и size для разбивки на страницы, что упрощает использование разбивки на страницы с пользовательскими SQL-запросами.
    • Модификатор @Deprecated добавлен к методу modify в PreparedSql.
    • Тип возвращаемого значения метода getFieldSet класса Condition изменён с Set на Set.
    • Исправлена ошибка в классе ConditionImpl, связанная с использованием between.

V1.7

  • Поддержка сложных многотабличных запросов в объектно-ориентированном стиле: один к одному, один ко многим, многие к одному и многие ко многим.
  • Поддержка join (inner join), left join, right join и no join.
  • Запросы к одной таблице и к нескольким таблицам не влияют друг на друга.
  • V1.7.1:
    • Добавлена возможность добавлять комментарии к классам Javabean.
    • Классы Javabean получили методы getColumnNames и getFieldNames.
    • Исправлено отсутствие заполнителей в пользовательских SQL-запросах.
    • Исправлена ошибка с разбивкой на страницы в PreparedSqlLib.
    • Доработан вывод исключений для нулевых строк в SQL.
    • Исправлены ошибки, связанные с кэшем.
    • Исправлена ошибка в SelectImpl.
    • Исправлена ошибка, связанная со стилем преобразования внутренних соединений.
    • Добавлен интерфейс FileCreator.
  • V1.7.2:
    • Выбор готовых правил именования через конфигурацию.
    • Улучшение функциональности BeeFactory.
    • Настройка формата вывода журнала SQL.
    • Определение формата даты через конфигурацию.
    • Перенос примеров использования и тестов в проект bee-exam.
    • Создание класса FileLogger для записи журналов в файлы.
    • Контроль уровня логирования через конфигурацию.
    • Улучшенные примеры использования и тесты.
    • Поддержка шаблонов для быстрого создания файлов.
    • Добавление метода delete(T entity, Condition condition) в интерфейс Suid.
    • Возможность настройки разрешения удаления всех данных из таблицы в объектно-ориентированных запросах.
    • Два новых метода в SuidRich: updateBy(T entity,String whereFields,Condition condition) и update(T entity,String updateFields,Condition condition).
    • Неиспользуемый кэш настраивается.
    • Новый метод setAdd и setMultiply в интерфейсе Condition для настройки операций обновления.

V1.8

  • Распределённые функции:
    • Много источников данных (чтение и запись разделены, только разделение на библиотеки).
    • Прозрачность кода для распределённых данных, требуется только конфигурация.
    • Маршрутизация для нескольких источников данных.
    • Реализация алгоритма маршрутизации для нескольких источников данных.
    • Конфигурация для нескольких источников данных.
    • Обновление конфигурации.
    • Генерация уникальных идентификаторов в распределённой среде.
    • Уникальные идентификаторы, увеличивающиеся последовательно в распределённой среде, глобально уникальные цифровые идентификаторы.
    • Алгоритм генерации уникальных идентификаторов: SerialUniqueId, OneTimeSnowflakeId, PearFlowerId.
    • Генератор уникальных идентификаторов GenIdFactory с настраиваемой реализацией генератора.
    • Глобальные уникальные идентификаторы для всех таблиц с полем Long id.
  • Расширение функций:
    • Разделение таблиц в одной библиотеке, динамическое сопоставление имён таблиц.
    • Сопоставление сущностей с произвольными именами таблиц.
    • Метод setDynamicParameter(String para,String value) добавлен в Suid.
    • Две аннотации: @Table и @Entity.
    • Функция for update для блокировки некоторых записей в таблице. Условие для Update()
  1. Добавление поддержки расширенных настроек обновления, сложных запросов и многотабличных запросов с возможностью выбора только части полей: В Condition добавлено 5 новых методов: * public Condition setAdd(String field, String fieldName); * public Condition setMultiply(String field, String fieldName); * public Condition set(String fieldNmae, Number num); * public Condition set(String fieldNmae, String value); * public Condition selectField(String fieldList).
  2. Поддержка конфигурации вывода журнала SQL, возможность отображения параметров и вывод непосредственно исполняемого SQL:
    • bee.osql.showSQL.showType=true;
    • bee.osql.showSQL.showExecutableSql=true.
  3. В SuidRich добавлен новый метод: public <T> int update(T entity,Condition condition). В PreparedSql добавлено три новых метода: * public String selectJson(String sqlStr); * public List<String[]> select(String sql); * public String selectFun(String sql).
  4. При сохранении поля DATE в Javabean как java.sql.Date в базе данных Oracle происходит потеря времени и секунд. Проблема решается использованием Timestamp.
  5. GenFiles поддерживает автоматическое создание кода файлов на основе шаблонов и добавляет поддержку заглавных букв в начале имён файлов, например: #{entityName?up1}.

Исправление существующих проблем:

  1. Исправлены следующие проблемы:
    • проблема с кешированием ключей;
    • ошибка при разборе JSON из-за лишних запятых;
    • null bug в методе PreparedSql's method select(String sql,Object preValues[]);
    • исправлена проблема с разбиением на страницы при многотабличном запросе Oracle.

v1.8.15(2020-10-01 3 октября)

  1. Улучшена поддержка баз данных H2, SQLite, PostgreSQL.
  2. Оптимизирована функция разбиения на страницы, включая использование заполнителей для параметров разбивки на страницы.
  3. Возможность использования без дополнительной настройки.
  4. Устранена проблема, связанная с алгоритмом RDBMS, когда при редком использовании создавались чётные числа с нулевым хвостом (алгоритмы SerialUniqueId и OneTimeSnowflakeId не имеют таких недостатков).
  5. Улучшены функции ведения журнала.
  6. Исправлено преобразование JSON.

v1.8.99(2020-10-25 День двойной девятки)

  1. Поддержка настраиваемого вывода ключевых слов SQL в верхнем или нижнем регистре.
  2. Возможность использовать MD5 символы в качестве ключа кэша SQL.
  3. Оптимизация использования HoneyConfig для настройки информации о БД.
  4. Исправление проблемы с checkSelectField.

V1.9

SuidRich получил поддержку метода пакетной вставки с использованием списка параметров. Усиление функциональности SuidRich: * public List<String[]> selectString(T entity, Condition condition); * public int updateById(T entity, Condition condition); * public String selectWithFun(T entity, FunctionType functionType, String fieldForFun, Condition condition); * public int count(T entity); * public int count(T entity, Condition condition); * public boolean exist(T entity) — проверка наличия записи. SuidRich скорректировал метод selectById и теперь может интеллектуально распознавать тип идентификатора Javabean для строковых типов идентификаторов. Suid получил новый метод insertAndReturnId. Укрепление функций агрегации cont, sum, avg, min, max. В Condition добавлены методы: * public Condition selectFun(FunctionType functionType,String fieldForFun); * public Condition selectFun(FunctionType functionType,String fieldForFun,String alias). В Condition добавлены методы opWithField и setWithField для поддержки выражений типа field1=field2. В Condition добавлен метод selectDistinctField для поддержки distinct, аналогично select distinct(userid) from table_name. MapSuid позволяет работать с данными без использования Javabean, используя map для хранения информации об объектах, которые необходимо преобразовать, и выполнять операции с базой данных (запросы, вставка и удаление данных). Поддержка чтения Excel (*.xls, *.xlsx) и преобразования данных в List<String[]>, а также их импорта в базу данных (bee-ext). Многотабличные запросы с несколькими условиями связи. Использование одного Connection для нескольких операций ORM. Поддержка одновременного использования разных баз данных (несколько источников данных). Обработка пустых строк длиной больше 0, например « ». Добавление аннотации Ignore для игнорирования полей Javabean и предотвращения их преобразования. Генерация файлов с помощью шаблонов с настраиваемыми начальными и конечными тегами. Улучшение управления соединениями с базами данных. Повышение качества кода. Усиление цепочечного программирования: Select, Update. Настройка bee.properties и HoneyConfig. Интеграция Spring boot с предоставлением bee-spring-boot-starter. Создание таблиц на основе Javabean. Исправление проблемы с разделением на страницы в многотабличных запросах, где одинаковые поля в некоторых базах данных могут вызывать путаницу (Oracle). Исправление ошибок при обновлении, когда идентификатор по умолчанию установлен как id, но id отсутствует или равен null. Исправление ошибки кэширования. Исправление ошибки, связанной с методом getRangeId(int sizeOfIds) в GenId. Исправление ошибки при использовании jdk 11 и LoggerFactory с конфигурацией log4j2. Рекомендация использовать представления без кэширования при их использовании, чтобы избежать проблем с грязными данными.

V1.9.8(2021 середина осени)

В SuidRich добавлено 4 метода: * public int save(T entity); * public int update(T oldEntity,T newEntity); * public String selectJson(T entity, String selectField); * public String selectJson(T entity, String selectField, int start, int size).

MoreTable (многотабличный запрос): * Поддержка List-типа полей в многотабличной связи для запросов. * Поддержка объединения двух дочерних таблиц (inner join, right join, left join). * Поддержка одной дочерней таблицы, которая содержит другую дочернюю таблицу. * Исправление проблемы, когда все атрибуты дочерней таблицы равны null, поле дочерней таблицы напрямую устанавливается равным null. * Добавление метода subClass() в аннотацию JoinTable для обработки List-типов в многотабличных связях. * В Condition добавлен новый метод для фильтрации данных во время связи: public Condition opOn(String field, Op Op, Object value).

MapSuid (работа с базой данных без использования структуры Javabean): * Новые методы для обновления, подсчёта, запроса с разбивкой на страницы и вставки и корректировки insert and insertAndReturnId. * Теперь MapSuid полностью поддерживает функции select, update, insert и delete, а также разбиение на страницы. * Добавлены методы putNew(String fieldName, Object newValue), putNew(Map map), put(Map map) для поддержки разбиения на страницы в MapSql. * Добавлен метод count(MapSql mapSql) для поддержки разбиения на страницы в MapSuid. * Добавленные методы insertAndReturnId(MapSql mapSql), support page в MapSuid для поддержки разбиения на страницы. * Добавленный метод putNew(String fieldName, Object newValue) для поддержки разбиения на страницы в MapSqlImpl. * Добавленный метод toUpdateSqlByMap, toCountSqlByMap для поддержки разбиения на страницы в MapSqlProcessor. mapSql), update(MapSql mapSql), support page in MapSuidImpl.

MapSuidImpl change two different method: insert(MapSql mapSql) & insertAndReturnId(MapSql mapSql).

PreparedSqlLib 新增 selectMapList 方法.

Много данных источников чтения и записи, поддержка разных типов данных источников, удобство переноса данных между базами данных.

Logger: два метода поддерживают Throwable параметр.

SQL-вывод журнала поддерживает разные уровни вывода настроек.

Увеличение инструмента класса потока StreamUtil.

ObjectUtils увеличение одного метода: isTrue(Boolean b).

Усиление проверки полей на законность, включая используемые поля MapSuid.

Use LinkedHashMap in List<Map> result for selectMapList(String sql).

Condition поддерживает condition.set("fieldName", null).

SelectJson поддерживает преобразование long в string через конфигурацию.

Усиление autoGenBean, поддержка генерации SQL-скриптов JSON формата (SQL Json Script).

Добавление общих функций поиска (упрощение сложного программирования запросов на стороне сервера).

Усиление многопоточной поддержки.

Можно указать путь к bee.properties.

Автоматическое создание Javabean (GenBean) поддерживает типы: JSON, TEXT.

Fix bug for ExecutableSql.

Перенос поля «порядок по».

Fix null bug in create() of ObjectCreatorFactory.

Fix bug для максимального количества столбцов (Excel в bee-ext).

Fix bug about HoneyContext.

Fix bug о checkPackageByClass.

Fix bug об условиях безопасности потоков в ConditionHelper.

V1.11 (трудовой день) — обновление до Maven перед пятью.

Каждая подверсия добавляет следующие функции:

V1.11.0.1.1 (2022 новый год)

SuidRich увеличивает метод: public long insertAndReturnId (T entity, IncludeType includeType);

PreparedSql увеличивает метод: public List select (String sql, T returnType);

Добавляет поддержку объявления первичного ключа: add annotation PrimaryKey. MapSqlKey поддерживает PrimaryKey.

BF может заменить BeeFactoryHelper для ускорения ввода.

Усиливает: конфигурация информации режима чтения и записи удаляет пробелы.

Исправляет ошибку именования передачи.

V1.11.0.2.1 (праздник весны 2022 года)

Перехватчики, мультиарендаторы.

Add Interceptor, InterceptorChain.

Add DefaultInterceptor, CommInterceptorChain, DefaultInterceptorChain.

V1.11.0.2.4 (зимние Олимпийские игры в Пекине 2022)

Расширение поддержки вторичного кэша: Redis кэш поддерживается.

Add BeeExtCache, DefaultBeeExtCache.

Add BeeExtRedisCache.

V1.11.0.2.15 (фестиваль фонарей 2022 года)

Добавить аннотации: Datetime, Createtime, Updatetime; JustFetch.

Поддержка Jndi источника данных.

Проверка значения MapSqlKey.

V1.11.0.2.20 (гордый)

Одновременное использование различных типов баз данных для оптимизации.

Поддержка одновременного использования различных баз данных (например, MySQL, Oracle, SQL Server).

PreparedSql (пользовательский SQL), MapSuid: перехватчики, поддержка нескольких источников данных.

Suid, PreparedSql, MapSuid поддерживают настройку имени источника данных, получение цепочки перехватчиков.

Увеличить аннотацию: AnnotationHandler, AutoSetString автоматически устанавливает значение символа.

Desensitize, чувствительная информация размыта.

ReplaceInto, MySQL replace into преобразование.

MultiTenancy мультиарендность.

BeforeReturnAnnotationHandler, AbstractDictI18nDefaultHandler.

Dict словарь преобразования.

DictI18n многоязычная интернационализация словаря преобразования.

V1.11.0.2.28 (особый день)

ShardingStruct для подготовки к разделению базы данных и таблицы.

Столбец имя столбца с именем свойства расширяет поддержку сопоставления.

Поддерживает пользовательский TypeHandler, обрабатывает результаты запроса ResultSet.

PreparedSql пользовательский SQL поддерживает запрос нескольких таблиц и возвращает связанные данные структуры Javabean.

Фиксированная ошибка: несколько таблиц запросов одной и той же сущности самосвязанное самозацикливание запрещено.

V1.11.0.3.8 (леди первая)

SetParaTypeConvert преобразует параметры PreparedStatement.

Javabean использует java.util.Date тип, чтобы сделать SUID совместимым.

SQLite получает результат Timestamp для преобразования.

Атрибуты сущности являются Javabean с DB таблицами JSON типа полей при настройке параметров и запросе результатов автоматически преобразуются (используя пользовательскую реализацию Json аннотаций).

V1.11.0.3.12 (день посадки деревьев)

Ddl.java использует Javabean для создания таблиц, поддерживает добавление java и db типов отображения, поддерживает установку определённого типа java_dbtype DB.

Ddl.java совместим с исходным типом char, совместим с java.util.Date.

PreparedSql поддерживает пакетную вставку.

Поддерживается установка преобразователя имён в Suid и других объектах.

Добавьте DbFeature диалектный регистратор, пользовательская реализация различных диалектов DB более удобна.

Cassandra поддерживается.

ShowExecutableSql добавляет List, Set, Map, UUID поддержку.

V1.11.0.3.20 (весеннее равноденствие)

Пользовательские динамические теги SQL: @in, @toIsNULL1, @toIsNULL2, , .

Динамический SQL, список преобразований в (1,2,3) предложения, не требует foreach, пакетная вставка также не требует foreach.

Разделение китайского API.

V1.11.0.4.22 (День Земли)

Добавьте интерфейс реестра Registry; добавьте NameRegistry.

Измените способ исключения интерфейса Serializer.

MapSuid, MapSql поддерживают анализ логических типов строк.

GenBean, ещё не поддерживаемые типы jdbc, напоминают, где установить.

GenBean добавляет поддержку, является ли он покрытием исходного файла.

GenBean добавляет получение поддержки полей, используя имена полей, можно не использовать строки напрямую.

Метод SuidRich selectString (T entity, String... selectFields) поддерживает переменные параметры.

CommInterceptorChain добавляет проверку, добавлен ли тот же тип перехватчика.

SystemLogger поддерживает настройку уровня журнала, удобную для разработки и отладки.

Logger добавляет публичный статический void debug (String msg, Throwable t) (удобный для разработки и отладки).

Nocache добавляет подсказку журнала.

Повышение безопасности кэширования.

Добавьте SPI предварительно загруженный интерфейс PreLoad.

Добавьте используемый глобальный перехватчик регистрации InterceptorChainRegistry.

Добавьте настройки конфигурации:

  • Является ли это pagingWithLimitOffset синтаксисом limit offset.
  • Не ловить ли исключение дублирующего ключа при однократной вставке notCatchModifyDuplicateException.
  • Показывать ли исключение дублирующего ключа при однократной вставке notShowModifyDuplicateException.

Исправлено исключение типа converter.

Исправлено исключение @PrimaryKey в Suid update (entity).

V1.11.0.4.29 (Международный день труда)

Конфигурационный файл поддерживает различные конфигурации среды.

SuidRich, public int update (T oldEntity, T newEntity) перехватчик обрабатывает только новые объекты newEntity. Расширение поддержки вторичного кэша
Поддержка Redis в качестве кэша.

Поддержка пользовательского TypeHandler для обработки результатов запроса ResultSet
Добавление преобразователя SetParaTypeConvert для преобразования типа параметров PreparedStatement.

Поддержка установки преобразователей имён в объектах Suid и подобных
Увеличение DbFeature-регистратора, упрощение использования различных диалектов DB.

Поддержка Cassandra

Добавление поддержки Jndi-источников данных

Ddl.java: использование Javabean для создания таблиц, поддержка сопоставления java и db типов полей, настройка сопоставления типа java_dbtype для конкретной БД

Использование PreparedSql для пакетной вставки и запросов к нескольким таблицам с возвратом связанных данных в виде структуры Javabean

Пользовательские динамические SQL-метки: @in, @toIsNULL1, @toIsNull2, ,
Динамический SQL преобразует список в формат in (1, 2, 3), не требует foreach, пакетная вставка также не требует foreach.

Регистраторы:

  • CalculateRegistry — реестр алгоритмов фрагментации;
  • DbFeatureRegistry — реестр характеристик DB;
  • InterceptorChainRegistry — реестр цепочек перехватчиков;
  • NameRegistry — реестр преобразователей имён;
  • SetParaTypeConverterRegistry — реестр преобразователей типов параметров;
  • TypeHandlerRegistry — реестр обработчиков результатов запросов.

Конфигурационный файл поддерживает различные конфигурации для разных сред

Добавлены аннотации:

  • PrimaryKey, Datetime, Createtime, Updatetime, JustFetch;
  • AnnotationHandler, AutoSetString — автоматическая установка строковых значений;
  • Desensitize — обработка конфиденциальной информации;
  • ReplaceInto — преобразование MySQL replace into;
  • MultiTenancy — многопользовательский режим;
  • BeforeReturnAnnotationHandler, AbstractDictI18nDefaultHandler — словарь и интернационализация;
  • Dict — преобразование словаря;
  • Column — расширение поддержки сопоставления имён столбцов и атрибутов.

Улучшения:

  • Оптимизация для использования с несколькими типами БД одновременно (например, MySQL, Oracle, SQL Server);

  • Замена BeeFactoryHelper на BF для ускорения ввода;

  • Использование java.util.Date в Javabeans для совместимости с SUID;

  • Ddl.java совместим с исходным char-типом и java.util.Date;

  • Обработка результатов Timestamp в SQLite;

  • Автоматическое преобразование свойств Javabean и полей JSON при настройке и запросе (с использованием пользовательских аннотаций Json);

  • Удаление пробелов из конфигурационной информации режима чтения/записи;

  • Проверка значений MapSqlKey;

  • Добавление пустых интерфейсов в Registry;

  • Изменение способа выдачи исключений в Serializer;

  • Поддержка анализа строк типа Boolean в MapSuid и MapSql;

  • Улучшение GenBean: напоминание о том, где установить неподдерживаемые типы JDBC;

  • GenBean теперь поддерживает переопределение существующих файлов настроек;

  • GenBean может получать поля без использования строковых имён напрямую;

  • Метод selectString в SuidRich теперь принимает переменное количество аргументов: public List<String[]> selectString(T entity, String... selectFields).

  • Исправленные ошибки:

    • Именование преобразований;
    • Запрет на самоассоциацию при запросах к одной сущности.

Версия V1.17 (2022·中秋)
Новые функции:

  1. Поддержка start и size для разбиения на страницы в SqlServer;

  2. Транзакционные аннотации Tran и их реализация по умолчанию, поддерживающая AOP-координацию, могут использоваться на уровне класса;

  3. Поддержка Android (Android OS): прямое использование Bee для доступа к SQLite, добавление ORM-функциональности в Bee;

  4. Поддержка HarmonyOS (HarmonyOS OS): прямое использование Bee для доступа к SQLite, добавление ORM-функциональности в Bee. В средах Harmony и Android можно использовать один и тот же код Bee для доступа к БД, что повышает повторное использование кода и экономит ресурсы!

  5. Поддержка журналов Android: android.util.Log;

  6. Поддержка журналов HarmonyOS: ohos.hiviewdfx.HiLog;

  7. Поддержка первичных ключей, отличных от «id», кроме Long, также Integer или String;

  8. Генерация первичных ключей с помощью аннотаций: GenId, GenUUID;

  9. Добавление реализации по умолчанию для @Column (рекомендуется не использовать эту аннотацию в новых системах);

  10. @Table, @Column, @PrimaryKey (@Id), @Ignore (@Transient) могут быть совместимы с соответствующими аннотациями JPA (определёнными в интерфейсе AnnoAdapter);

  11. Полевое имя класса сущности (по умолчанию: сущность_F, автоматически генерируется) имеет атрибут ALL_NAMES, который позволяет получить все значения полей сущности за один раз;

  12. Ddl.java поддерживает создание индексов (normal, unique), а также составных первичных ключей;

  13. Динамическое получение JdbcToJavaType;

  14. Добавлена новая категория именования (DbUpperAndJavaLower): база данных использует заглавные буквы, Java использует строчные буквы; символы совпадают, несмотря на регистр;

  15. При использовании нескольких схем именования добавляется часть TranslateType;

  16. Распределённый генератор идентификаторов, позволяющий установить начальный год: bee.distribution.genid.startYear.

Оптимизация и улучшения:

  1. Улучшение GenBean: когда id является BigDecimal, он сбрасывается до Long;
  2. Оптимизация GenBean для использования всех настроек по умолчанию;
  3. Оптимизация процесса создания таблиц в Ddl;
  4. В среде с несколькими источниками данных добавляется подсказка в журнал о текущем используемом источнике данных;
  5. Когда размер страницы равен нулю, возвращается пустой список;
  6. Улучшена поддержка дат в SQLite (date);
  7. Оптимизирована работа с кешем;
  8. condition.op(fieldName, Op.in, Value) теперь поддерживает List, Set, Number Array и отдельные элементы Number;
  9. condition.opOn(fieldName, Op.in, Value): Value теперь поддерживает только Number и String;
  10. Улучшено использование like; добавлены Op likeLeft, likeRight, likeLeftRight (параметры автоматически экранируются фреймворком); журналы SQL также экранируют данные;
  11. Улучшен ExcelReader: динамический подсчёт количества столбцов;
  12. Улучшена поддержка дат в SQLite (date).

Исправленные ошибки:

  1. Условие уровня 2 для кэширования; возврат типа в TypeHandlerRegistry;
  2. Перехватчики объектов используют прототипный паттерн, что приводит к загрязнению данных, исправлено на использование прототипного паттерна.

V1.17.0.10 (поиск и исправление ошибок)
Исправленные ошибки:

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

V1.17.0.9 (оптимизация и улучшение)

  1. Транзакционная аннотация @Tran, поддерживается на уровне классов;
  2. Полевое имя класса сущности (по умолчанию: сущность_F, автоматически генерируется) имеет атрибут ALL_NAMES, который позволяет получить все значения полей сущности за один раз;
  3. Ddl.java поддерживает создание индексов (normal, unique), а также составных первичных ключей;
  4. Динамическое получение JdbcToJavaType;
  5. Добавлена новая категория именования (DbUpperAndJavaLower): база данных использует заглавные буквы, Java использует строчные буквы; символы совпадают, несмотря на регистр;
  6. При использовании нескольких схем именования добавляется часть TranslateType;
  7. @Ignore (@Transient) может быть совместим с соответствующими аннотациями JPA (определёнными в интерфейсе AnnoAdapter);
  8. condition.op(fieldName, Op.in, Value) теперь поддерживает List, Set, Number Array и отдельные элементы Number;
  9. condition.opOn(fieldName, Op.in, Value): Value теперь поддерживает только Number и String;
  10. Улучшено использование like; добавлены Op likeLeft, likeRight, likeLeftRight (параметры автоматически экранируются фреймворком); журналы SQL также экранируют данные;
  11. Улучшен ExcelReader: динамический подсчёт количества столбцов;
  12. Улучшена поддержка дат в SQLite (date);
  13. Улучшено создание Javabean с помощью GenBean: если id является BigDecimal, то он сбрасывается до Long. V1.17.0.8 (海纳百川)
  • Поддержка использования в качестве имени первичного ключа не только «id», но и других имён, таких как Long, Integer или String.
  • Возможность автоматического создания значений первичных ключей с помощью аннотаций.
  • Добавление реализации по умолчанию для аннотации @Column (рекомендуется не использовать эту аннотацию в новых системах).
  • Совместимость аннотаций @Table, @Column и @PrimaryKey (@Id) с соответствующими аннотациями JPA.
  • Генератор распределённых идентификаторов с возможностью установки начального года.
  • Улучшение обнаружения полей при использовании SelectImpl и UpdateImpl.

V1.17.0.7 (有为)

  • Поддержка прямого доступа к SQLite через Bee на платформе HarmonyOS (также известной как Hongmeng).
  • Использование одного и того же кода Bee для доступа к базе данных на платформах Harmony и Android, что повышает возможность повторного использования кода и экономит ресурсы.
  • Поддержка журнала HarmonyOS: ohos.hiviewdfx.HiLog.

V1.17.0.6 (奋斗)

  • Прямой доступ к SQLite на платформе Android через Bee.
  • Расширение функциональности ORM для работы с базами данных на Android.
  • Оптимизация создания таблиц.
  • Включение информации о текущем используемом источнике данных в журналах при работе с несколькими источниками данных.
  • Реализация постраничного запроса, возвращающего пустой список при получении нулевого объёма данных за одну страницу.
  • Генерация bean-компонентов с использованием стандартных настроек.
  • Усовершенствование кэширования.

V1.17.0.5 (日臻完善)

  • Разбиение на страницы с использованием параметров start и size для SQL Server.
  • Введение аннотации Tran для транзакций.

V2.0

V2.0 (母爱)

  • Простота использования функций разделения таблиц и баз данных, аналогичных использованию единой базы данных.
  • Удобство использования MongoDB аналогично MySQL.
  • Новые функции:
    • Разделение таблиц и баз данных с использованием объектно-ориентированного подхода и JDBC.
    • Маршрутизация запросов между различными базами данных и таблицами.
    • Потоковые запросы для снижения использования памяти при запросах.
    • Поддержка различных типов запросов, включая агрегатные функции.
    • Настраиваемые конфигурации для разделения данных.
    • Широкая поддержка различных баз данных.

Обновление версий V2.0.x.x

Подробное описание обновлений доступно в списке изменений.

Функции Sharding в V2.0

V2.0.0.1001 (2022·国庆节)

  • Объектно-ориентированное разделение.
  • Методы Suid, SuidRich, запросы и обновления с разделением.
  • Многотабличные запросы с разделением.
  • Пакетная вставка с разделением.
  • Агрегатные функции с разделением запросов.
  • Постраничное разбиение и сортировка.
  • Различные типы разделения: таблицы, базы данных, только таблицы или только базы данных.
  • Точное указание маршрута запроса с использованием Hint.
  • Широковещательные таблицы.
  • Конфигурации для разделения.
  • Снижение использования памяти при потоковых запросах (JDBC).

V2.0.1.1 (2023·元旦)

  • Функции ORM для MongoDB.
  • Функции Sharding для MongoDB.
  • Изменения в методах SuidRich для указания полей запросов.
  • Метод selectFirst для получения первой записи.

V2.0.1.22 (2023·春节)

  • Агрегатные функции без группировки и с группировкой для разделения (JDBC и MongoDB).
  • Групповые агрегатные функции для разделения (только JDBC).
  • Поддержка MS Access.
  • Создание bean-компонентов из MongoDB.
  • SuidRichExt для более гибкого определения полей сущностей.
  • Широкие таблицы с произвольным выбором источника данных и обновлением всех узлов.
  • DDL для создания таблиц с разделением и передачи параметров класса.

V2.0.2.5 (2023·元宵节)

  • Обновления внутренних реализаций метода update.
  • Desensitize с настраиваемыми параметрами маски и размера.
  • Поддержка операторов :=, in и between в запросах с разделением, исключая not in, not between, >= и <=.
  • Улучшения в HintManager с возможностью указания только источника данных или только имени таблицы.
  • Сокращённое обозначение HintManager как HM.

V2.0.2.14 (2023·情人节)

  • Улучшенная функциональность журналов для ORM MongoDB.
  • Раздельное кэширование для сущностей из разных пакетов.
  • Расширенные возможности преобразования результатов запросов JSON String.
  • Исправление ошибок в PreparedSql для пакетных вставок.

V2.1 (LTS версия): основные функции

  • Перемещение основных интерфейсов, таких как Suid, SuidRich и MoreTable, в пакет org.teasoft.bee.osql.api.
  • Лучшая поддержка MVC и Spring RestFul.
  • Настройка нескольких источников данных через файл bee.properties.
  • Поддержка Lombok для GenBean.
  • Встроенный инструмент JSON fastjson с настраиваемой конфигурацией.
  • Автоматическое создание bean-компонентов для всех таблиц в базе данных.
  • Функциональность широковещательных таблиц для пакетной вставки.
  • Дальнейшее развитие функций Sharding.
  • Полная поддержка функций ORM для MongoDB.
  • Географические операции, GridFs и поддержка транзакций для MongoDB.
  • Выполнение собственных запросов и печать журналов для MongoDB.
  • Индексы и их управление для MongoDB.
  • Компонентный подход к определению bean-компонентов MongoDB.
  • Страничная навигация для большего количества баз данных.

Подробное описание функций для версии V2.1

V2.1.2.21 (Dragon Fly)

  • Простая конфигурация нескольких источников данных через файлы свойств.
  • Предупреждения об отсутствии зависимостей MongoDB при необходимости.
  • Исправлены проблемы с экземплярами ObjSQLRichService в интеграции со Spring.
  • Исключения журналов скрыты.
  • Выражения поиска с избыточными скобками теперь совместимы.

V2.1.2.28 (Eleven)

  • Несколько источников данных настраиваются через bee.properties с поддержкой Hikari и Druid.
  • Решена проблема с отсутствием возможности указать источник данных при пакетной вставке.
  • Преобразование типов дат в результатах запросов MongoDB.
  • Опция для настройки только MongoDB в случае нескольких источников данных.
  • Spring автоматически генерирует объекты для MongoDB. Версия V2.1.3.6 (Вздрогнем)
  1. MongoDB GridFS — хранение файлов.

Версия V2.1.3.12 (День посадки деревьев)

  1. Поддержка генерации всего файла JavaBean для одной строки кода для всей библиотеки, соответствующей таблице. Новый GenBean().genAllBeanFile();

  2. Пул соединений с данными, поддержка конфигурации нескольких источников данных, встроенная поддержка увеличения Dbcp2, Tomcat, C3P0.

  3. Улучшение сохранения файлов с помощью аннотаций GridFs, сохранение имени файла, метаданных и т. д.

  4. Изменение структуры tableNameList на Vector в Cache.

  5. Поддержка аннотаций Lombok в GenBean: @Setter, @Getter, @Data.

Версия V2.1.3.21 (Весна)

  1. Предоставление двух расширенных интерфейсов SuidRichExt и MongoSuidRichExt, а также класса быстрого ввода BFX.

  2. Улучшенное выполнение запросов к метаданным файлов MongoDB GridFsFile.

  3. Исправлен баг: создание таблицы DDL (Sharding); при потоковой фрагментации и запросе порядок полей преобразуется.

Версия V2.1.4.5 (Слава)

  1. Поддержка вставки, запроса и фрагментации географических данных MongoDB.

  2. Поддержка создания индексов MongoDB.

  3. Поддержка транзакций MongoDB.

Версия V2.1.4.20 (Дождь)

  1. Определение компонента Bean для MongoDB.

Версия V2.1.5.1 (Праздник труда)

  1. Печать журналов запросов MongoDB с использованием операторов печати.

  2. Возможность выполнения прямых запросов MongoDB (MongodbRawSql).

  3. Вставки в широковещательные таблицы.

  4. По умолчанию поддерживается больше баз данных: MsAccess, Cubrid, HSQL, Derby, Firebird и др.

  5. BeeMongodbSimpleDataSource поддерживает использование конфигурационных файлов для большего количества свойств.

  6. Встроенная поддержка JSON с использованием инструмента fastjson.

  7. Исправлен баг: массовая вставка не может автоматически генерировать значения первичного ключа.

Версия V2.1.5.20 (Тысяча слов)

  1. Основные интерфейсы, такие как Suid, SuidRich, MoreTable, PreparedSql, MapSuid и другие, перемещены в пакет org.teasoft.bee.osql.api.

  2. Создание пакетов org.teasoft.bee.mvc и org.teasoft.bee.mvc.service для лучшей поддержки программирования MVC и Spring RestFul.

  3. Улучшено преобразование имён таблиц, включая подсказки типов.

  4. Исправлена ошибка в PreparedSql при преобразовании класса в имя таблицы.

  5. Совместимость с таблицами, имена которых содержат символы подчёркивания, например orders_1, рекомендуется использовать формат orders1.

  6. Исправлены ошибки, связанные с массовой фрагментацией и вставкой параметров.

  7. Текущий объект устанавливает преобразователь имён NameTranslate, который действует только один раз, чтобы лучше поддерживать spring bean.

  8. Обновлён метод dropIndex.

  9. Добавлены методы географической информации для запросов (используя типы параметров драйвера MongoDB).

Версия V1.17.21 (18 июня 2023 года, версия 1.17.x LTS)

С версии V2.0 и V2.1 были добавлены следующие функции:

  • Улучшенное преобразование имён таблиц с подсказками типов.
  • Массовая вставка не может автоматически создавать значения первичных ключей.
  • Изменение структуры Cache tableNameList на вектор.
  • Исправлен баг: OneTimeSnowflakeId.getRangeId при массовой выборке номеров сталкивается с проблемой скачка номера на границе; sequence & segment достигают максимального значения, необходимо сбросить segment до 0.
  • Исправлен баг: PearFlowerId.getRangeId при массовой выборке номеров сталкивается с проблемой скачка номера на границе.
  • Исправлено исключение, возникающее при интеграции ObjSQLRichService и Spring, когда создаётся несколько экземпляров.
  • Улучшена поддержка преобразования запросов JSON String.
  • Исправлен баг: в интерфейсе PreparedSql возникают проблемы с массовыми вставками insertBatch, пустые указатели и заполнители.
  • Синхронизация GenBean с версией V2.1 (но без функций MongoDB).
  • Улучшено: разные пакеты сущностей не могут совместно использовать кэш, даже если они указывают на одну и ту же таблицу.
  • Скрыты проверки журналов исключений фреймворка.
  • Начиная с версии 1.17.21 по умолчанию генерируются исключения; предотвращение неправильного поведения во время транзакций.
  • public boolean notCatchModifyDuplicateException=true;
  • По умолчанию включено преобразование столбцов: openDefineColumn=true.
  • По умолчанию включена обработка результатов запроса: openFieldTypeHandler=true.
  • setNameTranslate заменён на setNameTranslateOneTime, устанавливается один раз для операций с базой данных. Используется для временного использования различных правил именования; правила именования должны быть записаны в файле конфигурации.
  • SuidRich запросы/обновления с указанными полями, если они становятся динамическими параметрами, поля строк должны быть помещены в конец.

Аналогично версии V2.1.6:

//V1.17.21 Если установлено значение false, то не будет выполняться SetParaTypeConverterRegistry и TypeHandlerRegistry по умолчанию.
closeDefaultParaResultRegistry;
JPA обрабатывает новые пакеты: jakarta.persistence.*;

Версия V2.1.6 (18 июня 2023 г., версия ко Дню отца)

  1. Добавлен переключатель closeDefaultParaResultRegistry, контролирующий необходимость загрузки преобразователей типов параметров и преобразователей типов результатов запросов по умолчанию.
  2. Поддержка JAP нового API пакета jakarta.persistence.*.
  3. Массовые вставки поддерживают настройку того, следует ли фреймворк перехватывать исключения дублирования ключей catchModifyDuplicateException, по умолчанию не перехватывается.
  4. Закрыт UtilDotDateTypeConvert из-за отсутствия HH:mm:ss.
  5. Исправлен баг обновления конфигурации по умолчанию.
  6. Исправлен баг NullPointerException для PreparedSql preparedValue.
  7. Исправлен баг для StringUtils.

Версия V2.1.7 (1 июля 2023)

  1. Добавлено средство запуска SQL-форматирования (необходимо настроить: bee.osql.showSql.sqlFormat=true).
  2. Двухуровневый кеш поддерживает случайное истечение срока действия, решая проблему кеширования лавинного эффекта.
  3. DdlViaExcel.createTable создаёт таблицы базы данных на основе информации Excel, можно создавать только часть.
  4. Поддерживает Spring boot 3.0, динамическую конфигурацию.
  5. Улучшен Sharding ThreadPool, можно настраивать размер Sharding операции выполнения потока.
  6. Улучшена многопоточная работа Android для получения SQLiteDatabase.

Версия V2.1.8 (2023, Праздник середины осени)

1.1 Совместима со Spring boot, команда active выбирает среду, например: java -jar springbootDemo.jar --spring.profiles.active=dev, будет выбран профиль dev, и будет использоваться файл конфигурации bee-dev.properties.
1.2 Совместима с Spring boot, конфигурация источника данных, например spring.datasource.url.
1.3 Не запускает приложение, напрямую запускает основной метод, если в файле bee.properties не настроена конфигурация источника данных, также можно использовать конфигурацию источника данных spring boot application.properties.
2. MoreTable — множественные ассоциации таблиц для вставки, обновления и удаления.
3. DateUtil — добавлено определение формата даты, расчёт возраста.
4. Создание таблиц с помощью Excel поддерживает больше баз данных.
5. Предоставляет BeeSimpleDataSource по умолчанию, поддерживает конфигурацию нескольких источников данных в bee.properties (без использования Spring boot), также может быть запущен самостоятельно.
6. Javabean поддерживает генерацию аннотаций Swagger.
7. MongodbObjSQLRichExt — улучшенный перехват и управление контекстной информацией.
8. Mongodb — печать журналов, при запросе всех полей по умолчанию не отображаются поля, которые нужно запросить; можно настроить через bee.osql.showMongoSelectAllFields, чтобы контролировать, показывать ли их.
9. GridFs — поддержка SELECT запросов, при запросах сущностей автоматически связываются соответствующие файлы (MongoDB), файлы GridFs поддерживают тип byte[].
10. Исправлен баг:
* CurrencyArithmetic — переменная bug.
* CacheSuidStruct — таблица имён не различает регистр.
* SQLite AS — синтаксис отсутствует пробел.
* Многотабличный запрос с использованием функций не может заполнить соответствующее поле. 5. Поддерживается прямой запуск в методе main, можно считывать информацию из application.properties SpringBoot, включая bee.db.url и другие данные для подключения к базе данных.

  1. При обновлении dataSource очищается кэш.

  2. Исправлена ошибка: у двух конфигурационных параметров (notSupportUnionQuery, executorSize) не было префикса sharding_.

V2.2 (2024.1.1 · LTS версия)

  1. Поддержка наследования для сущностей Javabean (конфигурация bee.osql.openEntityCanExtend = true).

  2. Улучшена связь между пакетной вставкой и транзакциями.

    В версии 2.2 и ранее при вызове пакетной вставки commit выполнялся после каждой партии, но в версии 2.2 commit выполняется только один раз внутри транзакции, а содержимое пакетной вставки больше не фиксируется, это контролируется транзакцией.

  3. Исправлены ошибки:

    1. Если параметр равен null при использовании Condition с Op.in, то возникает исключение.

    2. Ошибки, связанные с контекстом, при пакетной вставке с шардингом.

    3. Проблема с контекстом решается только при разделении на библиотеки.

    4. Контекст основного потока должен быть очищен при шардинге.

    5. Ошибка несовместимости InheritableThreadLocal и parallelStream(), parallelStream() можно использовать, когда нет шардинга, но не рекомендуется при шардинге.

V2.4.0 (2024. Национальный праздник · LTS версия)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/automvc-bee.git
git@api.gitlife.ru:oschina-mirror/automvc-bee.git
oschina-mirror
automvc-bee
automvc-bee
master