【问题标题】:JPA newbie can't interact with databaseJPA新手无法与数据库交互
【发布时间】:2011-04-01 19:01:15
【问题描述】:

我不久前开始使用 JPA,我认为它很棒,因为它的注释让编程变得如此简单。但是我仍然有很多疑问让我慢了一点(大多数时候是关于配置问题):

  1. 我想了解我在学习时使用的 OEPE(Oracle Enterprise Pack for Eclipse)中的 derby DB 与流行的 MySQL DB 之间的区别(www.mysql.com) .让我感到困惑的是嵌入式数据库和非嵌入式数据库有什么区别。哪个更好,你推荐什么?

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

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

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

提前致谢。

【问题讨论】:

    标签: java database orm jpa configuration


    【解决方案1】:

    关于问题1:

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

    嵌入式

    指 Derby 由一个 简单的单用户 Java 应用程序。 使用此选项,Derby 在 相同的 Java 虚拟机 (JVM) 应用。德比几乎可以 对最终用户不可见,因为它 由 应用程序,通常不需要 行政。德比 文档通常将此称为 嵌入式配置或嵌入式 模式。

    服务器(或基于服务器)

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

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

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

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

    【讨论】:

    • 很好的答案我不知道嵌入式模式实际上就是这样。我会看看那个比较表,也许我很快就会切换到 MySQL 而不是 Derby。谢谢
    • 切换到 mySQL 是一种可怕的体验,我疯狂地尝试在 Windows 上配置它。我回到德比,你解决了我对问题 2 的疑问。我按照本教程在几分钟内解决了问题:passogobbera.blogspot.com/2011/01/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多