我被分配了使Java Web应用程序与Oracle数据库一起工作的任务。我不知道从哪里开始。我希望有类似于使用MySQL或PostgreSQL的经验,但没有这样的运气。
此问题的答案将是安装和部署Oracle数据库以供开发使用的步骤列表,基本操作(如启动和停止,创建和删除模式,甚至可能是JDBC连接参数)。
关于我的项目的一些背景知识(尽管理想情况下,这个问题的答案将尽可能通用,而不是与我的环境的具体情况联系起来):
答案 0 :(得分:6)
首先,不要考虑OS X上的Oracle。你需要Linux(或Windows),可能在虚拟机上/
然后决定您是使用Oracle 10g还是11g。 10g有一个免费Express Edition,在Linux或Windows上相对容易安装。但是,如果您想要11g或错误修复10g或一些额外选项(压缩,分区......),您将需要完全许可的Oracle版本。取决于您的负载,但您可以拥有一台获得Oracle许可的物理机,具有多个VM(每个开发人员一个)。
XE有一个数据库实例,安装程序将配置为在启动计算机时启动。如果您只是将VM用于数据库,则使用计算机启动和关闭数据库是最简单的方法。
答案 1 :(得分:3)
如果您的数据库相对轻量级并且不太依赖Oracle特定的功能,我建议您使用XE进行开发。在另一种情况下,为运行Oracle进行开发专用一个单独的框可能更有意义。
至于你提到的基本步骤,oracle的后续版本带有一个相当不错的Web前端(which looks like that),可以处理所有这些维护任务。如果您需要更好,响应更快的内容,请使用Oracle SQL Developer,这是一个与pgAdmin类似的桌面应用程序。
使用较新版本的Oracle(10g及更高版本)也可以轻松安装,因此您不应该遇到任何问题。
编辑:在内存优化方面(如果您坚持在工作站上安装Oracle实例且数据库相对较轻),请检查this thread,因为它提供了大量有用的提示。
答案 2 :(得分:3)
从开发人员的角度来看,我没有发现MySQL和Oracle之间的根本区别。它只是表,连接和SQL。如果您的数据库变得庞大或需要疯狂的吞吐量那么是的,这很重要。但到那时你需要一个真正的DBA。
从Oracle下载SQLDeveloper。这是免费的。它将允许您执行数据库维护,以交互方式运行SQL语句等。
阅读“连接池”和“oracle”。 SO上可能有一些好的主题。你会想要这个,因为它会使你的服务有效运行。
阅读JNDI数据库连接。这只是在Tomcat配置中指定数据库连接的一种方法,因此您的应用程序不必了解有关数据库的任何信息。您将能够将您的战争文件从测试移动到QA,并且难度较小。
Hibernate是最棘手的事情!把事情简单化!我高度建议您从数据库中反向设计模型类,从不手动修改它们。您也可以生成您的DAO(推荐),但您将修改它们。
使用标准的正确数据库设计,因为您必须使用Hibernate玩更少的游戏。例如,始终在每个表上放置一个数字PK,并使用Oracle序列填充它。在适当的时候始终使用FK。尝试将数据标准化到实际程度。
将Ant或Maven用于您的构建。不要手工做任何事情。
使用SVN或类似名称。
这就是现在的大事。