DATASCOOTER
Support This Project
Custom Search

English Home
Russian Home
Quickstart
Performance
Guide
Download
Example
Contacts

 Object Relational Mapping system

Когда-то давным давно(в далекой-далекой галактике...) попытались мы использовать Hibernate но он был изначально рассчитан для серверных приложений, вставлял свои прокси-объекты где его не просили, извлекал всю цепочку связанных объектов или ничего не извлекал и слишком плотно был связан маппингом, загружаемым при запуске...
Вот и возникла такая идея - создать простую и понятную систему ORM небольшого размера которая могла бы работать как на клиенте так и на сервере, не вставляла своих прокси-объектов там где их не ожидаешь и позволяла настраивать и маппинг и специфику извлечения групп объектов в Runtime - во время исполнения программы, извлекала из базы данных только то что в данный момент, в данном контексте использования необходимо приложению а не то что прописано в маппинге один раз и навсегда, базировалась на JDBC, делала процесс извлечения объектов из базы данных и сохранения их обратно абсолютно прозрачным и предсказуемым. Чтобы маппинг делался легко и без ошибок и не засорял ни код классов ни директории приложения своим присутствием. Чтобы приложение по возможности вообще не было в курсе что его объекты где-то там сохраняют. Чтобы могла работать не только с объектами но и просто с наборами данных ,которые могут изменяться во время работы...
Продукт изначально был сделан под Eclipse но теперь может работать и без него. Создавать маппинг в стандартном еклипсовом редакторе точек расширения гораздо удобнее чем руками xml теги писать. Проекту уже три года - применялся он на нескольких больших проектах здесь выложена уже вторая версия - после рефакторинга и удаления лишнего. В пакете плагинов есть плагин с JUnit тестами - они демонстрируют функциональность, скорость и надежность работы.

Уникальные свойства


  • Можно извлечь из базы сложную структуру объектов(связанных или не связанных между собой) причем в каждой ветке могут быть свои условия. Эту же структуру можно удалить из базы или сохранить в базу(может быть в другую - количество и вид неограничены) или сериализовать и передать на удаленный толстый клиент, где затем положить в локальную базу и работать с ней точно таким же образом.
  • Извлечение связанных объектов - что как и на какую глубину - не задается жестко маппингом а настраивается в зависимости от контекста использования.
  • Система к способна работать с абстрактными наборами данных, не привязанных к каким-либо классам - например если при создании объекта маппинга(или в его xml описании) вы не укажете имя класса - то получится просто именованный набор данных из одной таблицы. Без привязки к каким-либо классам, класслоадерам и пр. Но точно так же - как и класс - по имени - вы сможете его извлекать из базы, менять и сохранять снова. За счет такой отвязки от вопроса загрузки классов экономится время и вычислительная мощность машины - например чтобы извлечь из одной базы кучу объектов и сохранить в другую вовсе не обязательно их инстанцировать, даже если такие классы были замаппированы заранее и класслоадер знает как их загружать - инстанцирование производится непосредственно там где пользователь ожидает получить объект а внутри системы перемещаются простые иерархические объекты одного вида, содержащие двумерные массивы Object[][]. Это означает что впоследствии - когда система уже у заказчика и занята важным делом - вам не нужно ломать голову над перекомпиляцией для добавления каких-то классов в работающую систему если вдруг требования изменились - без этого можно обойтись и вообще предусмотреть в вашем продукте работу с именованными наборами данных а не объектами.
  • Малый размер - примерно 120 KB

Awards of related software

Threepio

Russian Home Download from GearDownload.com Download from GearDownload.com Download from GearDownload.com Download from GearDownload.com


YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler