一开始我不得不说这对于java ee来说是全新的,而在java中则是全新的。我必须用这个做我的学习项目。首先,我需要一个与远程mysql数据库连接的标准桌面应用程序。第二个不太重要的是与数据库连接的Web应用程序。问题是根据java ee标准,信息流应该如何? 像客户端应用程序的东西>遥控> java beans>本地> mysql? 您对这个处理ORM等项目的简单项目有什么建议? 最后一个我需要一些关于java ee的教程或书籍。
答案 0 :(得分:2)
您实际上只需要很少的要求和约束,甚至选择技术堆栈。
我可以根据你的帖子提出建议:
尝试分解数据访问层(DAO),因为您可能会在桌面和Web应用程序之间共享它。为此你有2个解决方案:
解决方案1 :jar模块嵌入在两个应用程序中:
这意味着组件必须也可以在服务器容器(Java SE)之外运行。我建议不要使用Java EE而不是Spring,因为Java EE还没有提供独立的#34;轻量级"容器正确管理持久化上下文。
Spring将允许您使用数据源(插入远程数据库)和容器事务管理(使用容器外部的ORM并不是非常有趣的imho)来定义数据访问组件,它将独立运行(桌面应用程序)并且在任何servlet容器(tomcat等)(web app)内部,仅用于区别配置文件。
它会给出:
独立:客户端[Swing views>控制器> Spring管理的DAO]>远程数据库
网络:客户端[html]>网络服务器[任何视图技术(例如,春天mvc)> Spring管理的DAO]>远程或本地数据库
解决方案2 :SOA架构,其中共享数据访问组件实例部署在Web服务器上,并通过Web服务公开给独立应用程序:
独立:客户端[swing views>控制器]> http> Web或Java EE服务器[REST或SOAP Web服务> DAOs]>本地或远程数据库
网络:
否则我会建议你不要使用ORM,如果你真的不需要它,因为学习曲线相比它带给你的优势相当长。 (它取决于您的上下文和要求:数据模型的复杂性,现有数据库或新数据库,应用程序或共享专用的数据库,现有存储过程或触发器,高并发性等等)
答案 1 :(得分:-1)
对于桌面应用程序,我会将流程描述为: Java应用程序(核心Java) - > EJB(Enterprise Java Bean) - > Hibernate(ORM) - > MySQL(DB)
对于Web应用程序: Struts(前端框架) - > Hibernate - > MySQL的
您还可以在struts和Hibernate之间使用EJB。如果项目是相关的,你实际上只需要真正交换前端(Java App和Struts组件)。
我不会马上跳进成堆的框架。我从JSPs和Servlet开始学到了很多,然后进入Struts,然后学习Hibernate等等。它太过于担心一下了。
我没有推荐的书籍,但http://www.mkyong.com/有一些不错的例子。