【问题标题】:Best approach to creating a database driven Java website?创建数据库驱动的 Java 网站的最佳方法是什么?
【发布时间】:2011-02-05 21:21:16
【问题描述】:

我对编程和 Java 还很陌生,但我想深入了解一个小型数据库驱动的网站项目。我已经阅读了很多关于“现实世界”请求使用 Spring 和 Hibernate 体验的要求,所以我将这些安装在 netbeans 上并创建了一个项目(如果我点击运行,我会得到默认的 spring 页面)。现在我只需要一些关于从哪里开始设计我的应用程序的指导(如果我对初学者来说有点过头了,请告诉我!)。

我应该从我的课程开始吗? - 创建我所有的类,因为它们映射到我的数据库表并决定每个类需要哪些属性和方法?

任何人都可以推荐任何好书,也许……从头开始制作一个基于 Java 的网站(即从设计到部署),这可能对初学者有用吗?

任何帮助表示感谢。

编辑:自从发布这篇文章以来,我发现了一本适合我需要的精彩书籍,正好可以开始。首先,我尝试了 spring in action 和 hibernate in action - 但发现两者对于我的新手来说都太重了。相反,我得到了 Java EE 5 Development with Netbeans 6 书https://www.packtpub.com/java-ee5-development-with-netbeans-6/book,它对我很有帮助。如果您使用 netbeans 并且与我处于相似的位置,我会说拿起它!

【问题讨论】:

  • 这不是一个真正的 Java 应用问题。这可能会有所帮助stackoverflow.com/questions/574001/…
  • 感谢您 - 如果我没有正确标记此内容,我们深表歉意。将研究 Head First 面向对象的分析和设计。

标签: java database web web-applications


【解决方案1】:

太过分了?取决于你希望完成什么。您是否正在尝试创建一个创收网站,要求用户信任信用卡号码和其他敏感信息?那么,是的,你正在超越自己。这是个人使用的工具,还是您主要作为学习经验拼凑在一起的玩具?然后我说“噗!”到头顶的概念。去吧。

至于从哪里开始,我说从这头野兽的任何部分开始,你最清楚。对数据库的外观有一个坚实的概念吗?然后从它和它的支持类开始。对代码的核心应该做什么有清晰的认识?从那里开始。等等。如果一切都是平等的,我会说从数据库层的底部开始,然后逐步向上 - 但这只是我。

至于书,帮不了你,但我相信有人可以。

【讨论】:

  • 感谢您的支持 - 是的,这只是一次学习体验。我实际上已经创建了一个数据库。我已经在 php 中创建了站点,但是它的程序和完全意大利面条式(第一个真正的代码和网站)所以我希望通过使用我原来描述的工具重建它来学习一些 OOP 概念并获得一些 Java 网站经验发布!
  • 嗯。如果设置了数据库,那么创建访问它的类应该是非常简单的,值得尽早尝试。在那之后,最好的举措可能是尝试编写一些类来消除旧逻辑的意大利面。您是否熟悉 MVC(模型-视图-控制器)设计方法?这不是万能的,但我发现它是一种非常有用的方式来组织我的思想和我的代码;值得研究。祝你好运,无论如何。
  • 是的,我已经被建议使用 MVC 设计来帮助代码组织 - 另一个大问题是我的旧代码一点也不干。我想知道在实现 CRUD 的同时如何保持这个新代码干燥。我是否会创建一个具有基本 CRUD 功能的超类,并以某种方式将变量(表、字段等)从子级传递给父级以执行 CRUD - 或者我会在每个类的方法中为它们自己的特定方法编写 SQL 查询采用?感谢您的回复 - 非常感谢!
  • 您询问 CRUD 功能这一事实意味着您需要花更多时间学习 Hibernate/Spring 和 Java Persistence API。 :-) 来自 Enterprise Java Beans 模型,我发现 JPA 有点难以理解,但如果你正确设置它,它会非常光滑。很多功能都会自动处理,并大大减少您必须自己创建的 SQL 查询的数量。
  • 啊,真的,我已经尝试过 ruby​​ on rails - spring/hibernate 等是这样的吗?在您没有真正编写任何 SQL 查询的地方,您调用帮助方法来为您完成大部分工作?我现在只是在阅读 hibernate 网站 - 我实际上是在 netbeans 中将它们全部放在一起,现在我需要通过这一切(以及一些书籍/教程)来了解它是如何工作的!
【解决方案2】:

我建议看一下 Web 应用程序框架,例如 Spring 的 Roo 或 Grails。可悲的是,我对 Roo 没有经验。但我确实对 Grails 有一些经验。

使用 Grails,您将主要使用 Groovy,这是一种类似于 Python 的语言,但仍使用 JVM。您仍然可以选择在任何您喜欢的地方使用 Java(我认为)。 Grails(也许还有 Roo?)为您管理 Spring 和 Hibernate。

关于 Grails 的书籍,我推荐“Grails in Action”。我读过一些“Grails 1.1 Web Application Development”,它似乎也是一个很好的参考。顺便说一句,netbeans 也支持 Grails。

【讨论】:

  • +1 表示 ROO 或 Grails 建议,当我开始 Java Web 开发时,我很想拥有这些框架。
  • Grails 看起来真的很有趣 - 看看这个并获取 netbeans 插件。谢谢:)
【解决方案3】:

不要试图破坏你的目标,但如果你想知道是否从你的课程开始,我建议你更多地提高你的编程技能。

我建议看看 Larman 的 "Applying UML & Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)" 以及一本关于关系数据库理论的书(您需要知道如何正确地为数据库建模。)

您可以尝试构建一个数据库驱动的网络应用程序,它可能会让您深入了解如何做,但您需要具备一定的编程成熟度才能将这些技能发挥到极致。

这完全是个人观点,因此请持保留态度:在有人着手构建数据驱动的应用程序之前目的是最终能够在不平凡的项目中使用它 em>,那个人需要对编程有很好的了解(我的意思是很多,比如 1-2 门入门课程、1-2 门中级课程和至少 1 门初级课程,也许总共 15-30 个学分。 ) 除非那个人是天生的编程大师,否则我认为不会发生这种情况。

如果您对编程很认真,我建议您在处理此类问题之前花大量时间学习基础知识。

祝你好运。

【讨论】:

  • 感谢您的回复 - 实际上,我首先设计了数据库,然后再深入研究其他任何内容。我在阅读apress.com/book/view/9781590597699 - 开始数据库设计:从新手到专业的书时设计了它。公平地说,它似乎“有效”,从那以后我看过的数据库编程教程让我觉得它的设计方式是正确的。不过,我将明确检查建议的书-我明确需要帮助,知道从哪里开始!我将在 9 月开始攻读计算机学位 - 试图提前迈出一步 :)
  • 另外,作为一个以 GCSE 为背景申请大学的成熟学生(以及在大学学习了几年的心理学),我实际上想创造一些相当合理的东西,以便在与课程负责人见面时展示给他几周后聊天(这是我想重写整个 spaghetti php 网站的另一个原因)。
  • @Craig -- 你似乎在朝着正确的方向前进 :) 祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多