现在我正在制作一个非常简单的网站 - 大约5页.问题是,如果它是过度的,值得花时间集成某种数据库映射解决方案,或者如果只使用普通的旧JNDI会更好.我可能需要从数据库中读取/写入十几件东西.我想我对这些技术有基本的了解,但仍需要大量参考文档.还有其他人面临过这个决定吗?
编辑:对不起,我应该指定JNDI来查找数据库连接和JDBC来执行操作.
简短回答:这取决于您想要支持的复杂性.
答案很长:
首先,ORM(对象关系映射 - 您称之为数据库映射 - )和JNDI(Java命名和目录接口)是两回事.
您已经知道的第一个用于将数据库表映射到类和对象.第二种是为资源提供查找机制,它们可以是DataSources,Ejb,Queues或其他.
也许你的意思是"JDBC".
至于你的问题:如果这很简单可能没有必要实现ORM.数字表最多约为5-10,我猜这些操作非常简单.
可能使用普通的JDBC就足够了.
如果您使用DAO模式,您可以稍后更改它以支持ORM策略(如果需要).
像这样:假设你有Employee表
您可以手动创建带有DB的所有字段的Employee.java(它不应该花太长时间),使用以下方法创建EmployeeDaO.java:
+findById( id ): Employee +insert( Employee ) +update( Employee ) +delete( Employee ) +findAll():List
实施非常简单:
select * from employee where id = ? insert into employee ( bla, bla, bla ) values ( ? , ? , ? ) update etc. etc
当(和If)您的应用程序变得过于复杂时,您可能会更改DAO实现.例如,在"select"方法中,您可以更改代码以使用执行操作的ORM对象.
public Employee selectById( int id ) { // Commenting out the previous implementation... // String query = select * from employee where id = ? // execute( query ) // Using the ORM solution Session session = getSession(); Employee e = ( Employee ) session.get( Employee.clas, id ); return e; }
这只是一个例子,在现实生活中你可以让抽象工厂创建ORM DAO,但这是offtopic.重点是您可以从简单开始,并且通过使用设计模式,您可以在以后根据需要更改实施.
当然,如果你想学习这项技术,你甚至可以用一张桌子来开始学习.
选择一种或另一种(ORM解决方案)主要取决于您使用的技术.例如,对于JBoss或其他开源产品,Hibernate非常棒.它是开源的,有很多资源可供学习.但是如果你正在使用已经有Toplink的东西(比如oracle应用服务器),或者如果基础已经建立在Toplink上,你应该继续使用该框架.
顺便说一句,自甲骨文收购BEA以来,他们表示他们正在用现在所谓的"Oracle Weblogic Application Server"中的toplink取代Kodo(weblogic peresistence framework).
我给你留下了一些资源,你可以从中获得更多信息:
PEAA目录
DAO模式
这是Hibernate的入门教程:
过冬
Toplink的官方页面:
排名靠前
最后,我"认为"JPA的好想法是你最近可能会改变提供者.
从简单开始然后进化.
我希望这有帮助.