Data Access

Palych
Уже с Приветом
Posts: 13987
Joined: 16 Jan 2001 10:01

Data Access

Post by Palych »

(ещё один глупый вопрос из серии how to serve requests в рамках программы вылезания из-под камня)

А как сейчас полагается работать с данными, в смысле чтения из базы?
Рисуют/генерируют классы по структуре данных, доменные классы для бизнес логики и так далее (DAO/DTO и проч.)?
Я глянул в примеры, лекуции по Spring Data - выглядит всё как в EJB начала века сего. Даже Entity Beans, которые вроде как предавали анафеме...
Я к тому - сейчас всё строят на Object/Relational mapping, или какие-то подвижки в сторону например нетипизированных DTO?
Мне кажется что у какой-то ORM много лет назад я видел маппинг в JSON объекты, то ли в map of maps of lists...
6AM

Re: Data Access

Post by 6AM »

User avatar
valchkou
Уже с Приветом
Posts: 4185
Joined: 27 Apr 2011 03:43
Location: Сергели ->Chicago

Re: Data Access

Post by valchkou »

Palych wrote: 14 Mar 2019 20:34 А как сейчас полагается работать с данными, в смысле чтения из базы?
если это обычный мапинг таблицы на класс то спринг дата умеет делать это из коробочки используя @Repository
хотя сам объект определить придется, а иначе откуда знать какой первичный ключ или ID
вот тут есть пример с кассандрой.
https://github.com/valchkou-app/spring- ... ory.groovy

с другими базами у спринга принцип тот же.
Сама же ентитя может отличаться в зависимости от базы данных, поэтому спринг дата поддерживает различные аннотации.

Если маппинг более сложный, то можно использовать in-line mapper.
или select можно вообзе вернуть как map и прокинуть его дальше на клиента.
map автоматически будет конвертирован в JSON


Если же это не спринг или не спринг дата, тогда нужна какая нибудь ORM.
Для RDBMS подойдет ibatis

у кассандры есть свой маппер от датастакса
у манги тоже свой.

в наши дни в json уже никто сам не трансформирует.
у спринга этим занимается @RestController автоматически. Под капотом jackson по дефолту
tessob
Уже с Приветом
Posts: 576
Joined: 07 Jan 2016 13:04

Re: Data Access

Post by tessob »

Автор, смотря в каком контексе вам данные нужны и какие требования к реализации. Спринг Дата - вполне себе решения для "херак-херак и в продакшн". Если у вас нет никакой экзотики, например, чтоб решение работало на нескольких схемах, то можно брать и не рефлексироваать. По сути - это просто JPA вид сбоку. Если у вас приступы паранои управляемы, то можете смотреть абстракции, которые например Амазон под свои базы готовит. Если например АВС для вас целевая платформа, то тоже вполне себе вариант супового набора. Если вам сильно в перформанс надо, то в любом случае вы придете к JDBC и логике на стороне базы.
6AM wrote: 15 Mar 2019 01:07 https://www.odata.org/

Java implementation https://olingo.apache.org/
Вот что угодно, но только не этот треш!!! :angry:
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: Data Access

Post by liamkin »

Hibernate почему-то никто не упомянул.

Return to “Вопросы и новости IT”