persistence.xml
中有关derby客户端驱动程序的属性声明应该是什么:
<property name="javax.persistence.jdbc.driver" value=" ? " />
当从Java更新数据库时,我不断得到以下例外
实际上我需要客户端驱动程序而不是EmbeddedDriver。不知道如何命名。
该项目在其Java构建路径/库中具有Derby Client JDBC驱动程序(eclipse插件具有derby插件)。
导致异常的程序指令是:
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
[EL Info]: 2012-02-02 10:48:44.805--ServerSession(1434473856)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Severe]: 2012-02-02 10:48:44.93--ServerSession(1434473856)--Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [org.apache.derby.jdbc.EmbeddedDriver] not found.
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error. Class [org.apache.derby.jdbc.EmbeddedDriver] not found.
答案 0 :(得分:3)
javax.persistence.jdbc.driver
定义了用于访问数据库的协议。
如果要访问远程/本地derby网络服务器,则需要像这样设置:
<property name="javax.persistence.jdbc.driver" value="jdbc:derby://localhost:1527/my_schema " />
其中1527是NetworkServer的端口。 my_schema是您的数据库架构。
如果您还没有架构,请使用;create=true
创建它:
jdbc:derby://localhost:1527/my_schema;create=true
您可能需要查看Getting Started Guide。
旁注:
Class [org.apache.derby.jdbc.EmbeddedDriver] not found.
这告诉您并非所有derby所需的jar都存在于类路径中(在您发表的评论中,就是这种情况)。如果您遇到任何此类异常,请确保所有jar实际上都在类路径中。