4
A
回答
12
答案是 '双方'。
EJB本身不访问任何数据库表。您在Java中与数据库相关的所有事情都是通过Java持久性API(JPA)发生的,或者如果您想通过JDBC执行低级别的事情,但我们不要在此处介绍。
EJB为表格带来的是一种非常简单的事务管理。您总是需要那些使用JPA的人,并且手动管理这些有点痛苦。 EJB还使您可以非常方便地访问您将在JPA中用于与数据库进行交互的主类:实体管理器。
在实践中使用EJB是一个很大的简单,重量轻的情况下没有什么比添加@Stateless注释到豆更多:
@Stateless
public class FooService {
@PersistenceContext
private EntityManager entityManager;
public Foo getByID(Long fooID) {
return entityManager.find(Foo.class, ID);
}
}
没有EJB,代码做这个简单的查找是多更详细。没有JPA,就没有任何代码。如前所述,EJB没有访问数据库的功能。
0
除非您实际构建企业系统并且需要增加EJB的复杂性,否则只需使用JPA即可。这听起来像你刚刚构建一个Web应用程序,你需要简单的数据库访问 - 去JPA。我们使用OpenJPA,并没有问题。
相关问题
- 1. 通过EJB访问数据的Seam应用程序
- 2. Windows应用程序通过Interop.Excel库访问xls数据问题
- 3. 如何让JPA应用程序访问不同的数据库?
- 4. 同时访问Web应用程序中的数据库
- 5. Glassfish 4通过独立应用程序访问EJB
- 6. 访问网络应用程序中的Web数据表
- 7. 通过EJB 3.0,JPA
- 8. Flex Web应用程序可以访问sqlite数据库吗?
- 9. 访问Web数据以便在应用程序中使用?
- 10. 如何比较两个访问数据库以比较数据库记录
- 11. 寻求意见重访:通过Android应用程序访问MySql数据库
- 12. 多表查询访问比较数据
- 13. 将第三方应用程序数据库(通过REST API)与SQL数据库同步的Web应用程序
- 14. 通过Web访问独立的GUI应用程序
- 15. 通过java程序并行访问一行(在数据库表中)?
- 16. 通过比较数据表2
- 17. 如何从数据库访问其他Web应用程序的数据
- 18. Singleton EJB,JPA并发访问
- 19. 在C#web应用程序中通过会话保存数据
- 20. 在应用程序中使用greendao访问数据库
- 21. 在JSF + EJB应用程序中捕获数据库异常
- 22. 通过网络应用程序访问Iphone Pim数据
- 23. SSAS多维数据集,通过应用程序限制访问
- 24. 将用户凭据与/ etc/shadow比较的Web应用程序
- 25. 通过Java应用程序访问SharePoint
- 26. 通过NDK应用程序访问GPS
- 27. 通过Java应用程序访问Facebook
- 28. 通过Web应用程序访问OMR扫描仪
- 29. 通过Web应用程序访问Sharepoint身份验证
- 30. 通过云服务访问Web应用程序文件
我并不完全同意这一点。 EJB不增加复杂性,它带走了复杂性。在任何符合Web配置文件的服务器中,您只需向bean添加@Stateless注释即可。手动使用JPA必须最后用try catch包围每个操作,事务的开始执行检查,并提交或回滚并关闭会话。与我只添加一个@Stateless注释相比,这在我的书中很复杂。最基本的Web应用程序从EJB中受益匪浅。这就是为什么它是Web Profile的一部分,并通过Resin等超轻量级服务器实现。 – 2011-01-09 17:26:56