简短回答:这取决于您要支持的复杂性。
长答案:
首先,ORM(对象关系映射 - 你称之为数据库映射)和 JNDI(Java 命名和目录接口)是两个不同的东西。
如您所知,第一个用于将数据库表映射到类和对象。二是提供资源查找机制,可以是DataSources、Ejb、Queues等。
也许你的意思是“JDBC”。
现在至于您的问题:如果这么简单,可能就没有必要实现 ORM。数字表最多约为 5 - 10,我猜操作非常简单。
可能使用普通的 JDBC 就足够了。
如果您使用 DAO 模式,您可以稍后根据需要对其进行更改以支持 ORM 策略。
像这样:
假设你有 Employee 表
您使用数据库的所有字段手动创建 Employee.java(它不应该花费太长时间)和一个带有以下方法的 EmployeeDaO.java:
+findById( id ): Employee
+insert( Employee )
+update( Employee )
+delete( Employee )
+findAll():List<Employee>
而且实现非常简单:
select * from employee where id = ?
insert into employee ( bla, bla, bla ) values ( ? , ? , ? )
update etc. etc
当(和如果)您的应用程序变得过于复杂时,您可以更改 DAO 实现。例如,在“选择”方法中,您将代码更改为使用执行操作的 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,但那是题外话。关键是您可以从简单开始,通过使用设计模式,您可以在以后根据需要更改实现。
当然,如果您想学习这项技术,您甚至可以从一张桌子开始。
选择一种或另一种(即 ORM 解决方案)基本上取决于您使用的技术。例如,对于 JBoss 或其他开源产品,Hibernate 非常棒。它是开源的,有很多资源可以学习。但是,如果您正在使用已经具有 Toplink 的东西(例如 oracle 应用程序服务器),或者如果基础已经构建在 Toplink 上,您应该继续使用该框架。
顺便说一句,自从甲骨文收购了 BEA,他们说他们正在用现在称为“甲骨文 Weblogic 应用服务器”的 toplink 替换 Kodo(weblogic 持久性框架)。
我给你留下了一些资源,你可以在其中获得更多信息:
在这本“企业应用程序架构的模式”一书中,Martin Fowler 解释了在哪里使用一个或另一个,这里是目录。看看数据源架构模式与对象关系行为模式:
PEAA Catalog
DAO(数据访问对象)是核心 J2EE 模式目录的一部分:
The DAO pattern
这是 Hibernate 的入门教程:
Hibernate
Toplink官方页面:
Toplink
最后,我“认为”JPA 的好处是您最近可能会更换提供者。
从简单开始,然后进化。
我希望这会有所帮助。