JPA新手无法与数据库交互

时间:2011-04-01 19:01:15

标签: java database orm jpa configuration

我不久前开始使用JPA,我觉得它很棒,因为它的注释使编程变得如此简单。但是我仍然有很多疑点让我感到有点迟钝(大部分时间都与配置问题有关):

  1. 我想了解OEPE(Oracle Enterprise Pack for Eclipse)中的derby DB之间的区别,我使用它来学习,以及流行的MySQL DB(www.mysql.com) 。令我困惑的是嵌入式数据库与非嵌入式数据库的区别。什么是更好的,你推荐什么?

  2. 第二个疑问是关于某些配置问题我无法用我的derby DB修复(不是嵌入式模式)我已经提出了一个问题,但我无法修复它。问题是,当我尝试访问我的数据库的某些表(数据库中存在的表,它们是由JPA功能创建的,从实体生成表)时,我得到SQLSyntaxErrorException,表示表不存在。我知道这是不可能的,因为在日食剪贴簿中手动插入的相同查询可以正常工作。我知道这有一些配置问题,但我不知道它是什么。 如果有更多JPA经验的人能帮助我,我会非常高兴。

  3. 我用于编程的工具是eclipse + OEPE,Java EE 6和GlassfishV3.0

    这是我的另一个问题的链接,我在这里更详细地解释了这个问题: SQLSyntaxErrorException: Table/View 'BUYER' does not exist. What is missing?

    提前致谢。

1 个答案:

答案 0 :(得分:1)

关于问题1:

Derby / JavaDB有两种操作模式(引用形式为JavaDB documentation):

<强>嵌入式

  

指德比由一个人开始   简单的单用户Java应用程序。   有了这个选项,Derby就可以在   与Java相同的Java虚拟机(JVM)   应用。德比几乎可以   最终用户看不见,因为它   由...启动和停止   申请,通常不需要   管理。德比   文档通常将此称为   嵌入式配置或嵌入式   模式。

服务器(或基于服务器)

  

指德比由一个人开始   提供多用户的应用程序   跨越Derby数据库的连接   一个网络。使用此选项,Derby可以运行   在Java虚拟机(JVM)中   托管服务器。应用连接   从不同的JVM到服务器   访问数据库。德比网络   Server是Derby软件的一部分   分发并提供此类型   德比的框架。德比也有效   与其他人,独立   开发Server应用程序。该   Derby文档经常提到   这是网络服务器   配置或客户端/服务器   配置。

根据我的经验,两种模式的主要区别在于,在嵌入模式下,数据库是应用程序的一部分,只有一个用户可以连接到数据库。

在服务器模式下,数据库不是应用程序的一部分,在不同的JVM或其他计算机上运行,​​并以多用户/多连接模式运行。

关于 JavaDB和MySQL 的比较,我认为这取决于您的应用程序和功能要求。快速谷歌搜索显示此comparison of relational db systems(德比可以在Apache Derby的字母“A”下找到)。