java何时使用Hibernate/JPA/Toplink?
现在我正在制作一个非常简单的网站——大约5页。问题是,集成某种类型的数据库映射解决方案是否过火,是否值得花时间,还是只使用普通的老JNDI更好。我可能需要从数据库中读/写十几件东西。我想我已经对这些技术有了基本的了解,但仍然需要大量参考文档。以前还有其他人面临过这个决定吗
编辑:对不起,我应该指定JNDI来查找数据库连接,指定JDBC来执行操作
你可以在下面搜索框中键入要查询的问题!
现在我正在制作一个非常简单的网站——大约5页。问题是,集成某种类型的数据库映射解决方案是否过火,是否值得花时间,还是只使用普通的老JNDI更好。我可能需要从数据库中读/写十几件东西。我想我已经对这些技术有了基本的了解,但仍然需要大量参考文档。以前还有其他人面临过这个决定吗
编辑:对不起,我应该指定JNDI来查找数据库连接,指定JDBC来执行操作
# 1 楼答案
学习ORM的最佳方法是在一个小项目上。开始这个项目
一旦你掌握了窍门,你就可以用ORM做任何事情
对ORM来说没有什么太小的。在你的前两个项目之后,你会发现你无法以任何其他方式工作。ORM映射通常比任何其他工作方式都更有意义
# 2 楼答案
看看这里的各种toplink指南,它们有介绍、示例、场景等
http://docs.oracle.com/cd/E14571_01/web.1111/b32441/toc.htm
# 3 楼答案
我的经验法则是,如果它是只读的,我愿意在JDBC中这样做,尽管我更喜欢使用空的Hibernate项目和SQLQuery来利用Hibernate的类型映射。一旦我必须进行写操作,我就使用Hibernate,因为设置几个属性然后调用save比单独设置每个列要容易得多。当你必须开始优化以避免更新未更改的对象时,最好使用OR/M及其脏检查。处理外键关系是另一个迹象,表明您需要映射它一次,然后使用getter。同样的逻辑也适用于Toplink,不过除非他们在我使用它的3年里添加了类似HQL的东西,否则Hibernate对于这种从纯SQL的转换会更好。请记住,您不必映射每个对象/表,只需映射那些具有明显优势的对象/表。根据我的经验,大多数不使用现有OR/M的项目最终都会构建一个新的OR/M,这是一个坏主意
# 4 楼答案
对于一个非常简单的应用程序来说,这似乎有些过头了,尤其是如果你还没有计划扩展它的话。然而,使用这些简单的应用程序似乎也是值得的,这样你就可以更好地了解它们是如何工作的,下次你有了可以使用它们的东西
# 5 楼答案
简单回答:这取决于你想要支持的复杂性
详细回答:
首先,ORM(对象关系映射——您称之为数据库映射)和JNDI(Java命名和目录接口)是两个不同的东西
如您所知,第一个用于将数据库表映射到类和对象。第二种是为资源提供查找机制,它们可以是数据源、Ejb、队列或其他资源
也许你的意思是“JDBC”
至于你的问题:如果这么简单,就没有必要实现ORM。数字表最多在5-10左右,我想操作非常简单
也许使用普通的JDBC就足够了
如果使用DAO模式,您可以在需要时更改它以支持ORM策略
像这样: 假设你有员工表
创建员工。java和数据库的所有字段(不需要太长时间)以及EmployeeDaO。java,其方法如下:
实施过程非常简单:
当(如果)应用程序变得太复杂时,可以更改DAO实现。例如,在“选择”方法中,您更改代码以使用执行操作的ORM对象
这只是一个例子,在现实生活中,你可能会让Abstract工厂创建Form DAO,但这不是主题。重点是,您可以从简单开始,通过使用设计模式,您可以在以后根据需要更改实现
当然,如果你想学习这项技术,你甚至可以从一张桌子开始
一种或另一种(即ORM解决方案)的选择基本上取决于您使用的技术。例如,对于JBoss或其他开源产品来说,Hibernate非常棒。它是开源的,有很多可以学习的资源。但是,如果您使用的是已经有Toplink的东西(比如oracle应用服务器),或者基础已经建立在Toplink上,那么您应该继续使用该框架
顺便说一句,自从甲骨文收购BEA之后,他们说他们正在用toplink取代Kodo(weblogic peresistence framework),现在称之为“甲骨文weblogic应用服务器”
我给您留下一些资源,您可以从中获得更多信息:
在这本“企业应用程序架构模式”的书中,Martin Fowler解释了在哪里使用其中一种模式,以下是目录。看看数据源架构模式与对象关系行为模式:
PEAA Catalog
DAO(数据访问对象)是核心J2EE模式目录的一部分:
The DAO pattern
这是Hibernate的入门教程:
Hibernate
Toplink的官方页面:
Toplink
最后,我“认为”JPA的好想法是,你最近可能会更换供应商
从简单开始,然后进化
我希望这有帮助
# 6 楼答案
你是说普通的老JDBC吗? 一个小项目可能是学习其中一个ORM框架的好机会,尤其是如果你有时间的话
然而,如果没有更多信息,就很难以这样或那样的方式提供推荐