2012-03-12 4 views
12

Что будет лучшим решением для программистов, как http://vimeo.com/28885655Альтернативы зимовать

Люди, которые создали видео считают,

  1. Во многих случаях зимуют является излишеством
  2. Basic SQL является хорошим языком, спящий режим абстрагирует далеко на много

Я слышал о некоторых других реализациях ORM, таких как

Я хотел бы услышать, как они соотносятся и каковы преимущества/недостатки каждого из них.

+0

У вас есть решение ORM? – MJM

+0

Очень забавное видео :-) – assylias

+1

Я хочу легкий вес на основе sql –

ответ

5

Here вы можете найти обширный список решений Java ORM и персистентности. Не все из следующего подхода Hibernate/JPAs, некоторые из них довольно просты по дизайну.

Конечно, есть решения, не указанные на этом сайте, то есть Spring JDBC with templates, etc.. И это мой личный выбор для проектов, которым требуется быстрый, простой сбор JDBC-доступа и уже используется Spring.

В общем, для меня, по крайней мере, немного рано сказать, что Hibernate плохой, и он вырос до большого. Он хорошо служит, но подходит для многих ботинок. Мое личное мнение заключается в том, что он останется таким, какой он есть, но решения NoSQL, вероятно, приведут к появлению новой породы решений для сопоставления данных Java, например Spring Data. Необходимо создать простой подход к взаимодействию с данными приложения, но я не думаю, что есть консенсус относительно того, как туда добраться ... пока.

+0

Пробовал делать сравнение популярных в настоящее время фреймов ORM без JPA https://github.com/bwajtr/java-persistence-frameworks-comparison –

3

Если вы хотите контролировать использованный SQL и оставаться близким к JDBC в целом, вас может заинтересовать MyBatis, который позволит вам написать свои собственные запросы и предоставить инфраструктуру для «автоматического» преобразования ResultSets в POJO на основе XML- или метаданных на основе аннотаций.

Избранная будет выглядеть в XML:

<select id="selectUsers" parameterType="int" resultType="my.User"> 
select id, username, password 
from users 
where id = #{id} 
</select> 

Это будет отображенной пользователю, как это:

<resultMap id="userResultMap" type="my.User"> 
    <id property="id" column="id" /> 
    <result property="username" column="user_name"/> 
    <result property="password" column="hashed_password"/> 
</resultMap> 

С свойств, являющихся свойствами Bean в POJO my.User

5

Ведущий делает хороший пример того, что некоторые каркасы слишком сложны. Огромное количество библиотек ORM, по-видимому, является показателем того, что хорошее решение неуловимо.

Github, bitbucket, source forge имеют сотни проектов ORM. Wikipedia также имеет хороший список.

Я придумал sormula в качестве легкой альтернативы сложным фреймворкам, таким как JPA. См. sormula site для получения списка функций и примеров.

Он также содержит пакет, который реализует шаблон активной записи для тех, кто любит этот подход, но не требуется.

Смежные вопросы