我似乎遇到了NB的问题。我成功地从数据库中创建了一个实体类(有一些初始问题,这似乎是NB中的一个bug)。目标是将数据库从某个位置嵌入到应用程序中。步骤和问题解释如下。
资源:
~数据库[TourismDB]有两个表:“游客”、“旅游”
~套餐:META-INF、toursap
~文件:persistence.xml、Tourists.java、Tours.java、图尔UI.java
步骤:
1.创建包
2.从数据库创建新的实体类
3.如果尚未创建,请在PC上创建到DB物理位置的连接
4.成功完成所有步骤,文件由NB创建,即META-INF包和DB实体类的自定义包
5.为表创建的一个类文件创建了一个Serializable字段,但将更改为Boolean,并且与原始Serial更改相关的错误也更改为Bool。
6.创建JFrameForm,添加jTable并将其绑定到Tours表。
7.更改META-INF\Persistence.xml JDBC url以排除物理位置的真实路径;如。
jdbc:derby:C:\Projects\ToursApp\TourismDB
->
jdbc:derby:
C:\Projects\ToursApp\
TourismDB
8.persistence.xml创建必须删除的新行。(见附录1)
9.在运行JFrame之前保存所有内容。
10.运行JFrame,NB连接到EclipseLink,然后抛出异常。(应为;请参阅错误1)
11.重新启动NB并运行文件。一切都能正确编译。
附录:
1.持久性.xml
之前
将元素绑定到JTable
更改JDBC URL以排除物理位置。请参见步骤7。
更改后,运行前
漏洞:
1.完成步骤1-9后,我第一次构建应用程序,NB抛出异常:
[EL Info]: 2014-02-15 14:40:08.29--ServerSession(25525711)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Severe]: 2014-02-15 14:40:12.342--ServerSession(25525711)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Failed to start database 'TourismDB' with class loader sun.misc.Launcher$AppClassLoader@765291, see the next exception for details.
Error Code: 40000
Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
内部异常:java.sql.SQLException:无法使用类加载器sun.misc.Launcher启动数据库“TourismDB”$AppClassLoader@765291,有关详细信息,请参阅下一个异常。
错误代码:40000
当这种情况发生时,我重新启动NB并再次编译JFrameForm,这一次,一切都按预期工作。
为什么会发生这种情况,为什么我必须重新启动NB以使一切正常工作?