我正在构建一个非常简单的弹簧应用程序。
在ORM方面,我不需要任何关系或功能丰富的更改跟踪/会话管理或任何其他奇特的功能。
我只想要一些映射到我的db表的东西,在那里我可以在单个实体上执行基本的CRUD,如update / insert / delete / select。
我目前正在使用hibernate,只是想知道还有什么可以扩展我的知识并简化事情。
答案 0 :(得分:2)
ORM工具本身并不复杂。事实上,正如您可能已经注意到的那样,它们使开发人员在正确使用时更轻松。您还没有提到您使用hibernate面临的问题,这会引发您寻找更简单的替代方案。几乎所有ORM tools都具有或多或少类似的功能/ API,因为从根本上它们解决了同样的问题。 (Spring支持Hibernate,JDO,iBatis,JPA)
这个论坛上有关于hibernate使用的非常interesting post。根据经验,如果您的模式具有较少的表(5-10作为帖子提及)并且关系不是很复杂,那么您应该避免使用ORM工具,因为这可能是一种过度杀伤。在这种情况下,JDBC就足够了。我会强烈推荐 spring JDBC(因为你已经使用了spring)。
答案 1 :(得分:1)
我不确定我的ORMLite包是否是“最”轻量级但我认为我至少会提到它是一种可能性。它有几个spring实用程序类来帮助配置,并且设计简单,轻松,轻量级。以下是春季文档:
以下是本手册的getting started section。您还可以查看spring wiring example:
以下是文档中的一些示例弹簧配置:
<!-- URL used for database, probably should be in properties file -->
<bean id="databaseUrl" class="java.lang.String">
<!-- we are using the in-memory H2 database in this example -->
<constructor-arg index="0" value="jdbc:h2:mem:account" />
</bean>
<!-- datasource used by ORMLite to connect to the database -->
<bean id="connectionSource" class="com.j256.ormlite.jdbc.JdbcConnectionSource"
init-method="initialize">
<property name="url" ref="databaseUrl" />
<!-- probably should use system properties for these too -->
<property name="username" value="foo" />
<property name="password" value="bar" />
</bean>
<!-- abstract dao that is common to all defined daos -->
<bean id="baseDao" abstract="true" init-method="initialize">
<property name="connectionSource" ref="connectionSource" />
</bean>
<!-- our daos -->
<bean id="accountDao" class="com.j256.ormlite.examples.common.AccountDaoImpl"
parent="baseDao" />
<bean id="deliveryDao" class="com.j256.ormlite.spring.DaoFactory"
factory-method="createDao">
<constructor-arg index="0" ref="connectionSource" />
<constructor-arg index="1" value="com.j256.ormlite.examples.spring.Delivery" />
</bean>
答案 2 :(得分:0)
我在Spring v3.0中使用了MyBatis v3.0.4,效果非常好。我们有很高的性能要求,它能够满足它们 - 好吧,它没有妨碍它。如果有必要,它也足够灵活,允许复杂的事物。设置非常少。