0

我使用 netbeans 7 服务创建了一个 java db 数据库,我使用 java 嵌入式驱动程序连接到 java db。我可以在 java 数据库中的连接下找到我的数据库,在一个名为 ROOT 的模式下。

这是我的 java db 连接名称:

jdbc:derby:AddressBook [root on ROOT]

但是,当我尝试在我的项目中使用该模式时,我得到一个异常状态

Caused by: ERROR 42Y07: Schema 'ROOT' does not exist
    at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
                       .....

错误出现在 select 语句中。我应该怎么做才能使它在项目中可读?

这是我的代码:

private static final String URL = "jdbc:derby:AddressBook";
   private static final String USERNAME = "root";
   private static final String PASSWORD = "cs101";

   private Connection connection = null; // manages connection
   private PreparedStatement selectAllPeople = null; 
   private PreparedStatement selectPeopleByLastName = null; 
   private PreparedStatement insertNewPerson = null; 

   // constructor
   public PersonQueries()
   {
      try 
      {
         connection = 
            DriverManager.getConnection( URL, USERNAME, PASSWORD );

         // create query that selects all entries in the AddressBook
         selectAllPeople = 
            connection.prepareStatement( "SELECT * FROM ROOT.Addresses" )
4

3 回答 3

2

尝试在创建连接之前放置此代码

Class.forName("org.apache.derby.jdbc.ClientDriver")
于 2012-02-09T17:20:39.097 回答
0

使用嵌入式 derby 时,nb 已将您的数据库放置在特定位置。在我的 NB 7.2 安装中,它默认为:C:\Users\James.netbeans-derby。您需要通过设置 derby home 属性来确保您的应用正在读取相同的 db 文件:

System.setProperty("derby.system.home", "C:\Users\James\.netbeans-derby");

或像这样:

System.setProperty("derby.system.home", 
    System.getProperty("user.home")+".netbeans-derby");

祝你好运!

于 2012-09-01T10:12:26.597 回答
0

从 Derby 数据库的属性中获取完整 URL 并获取连接以解决问题

于 2017-08-21T13:54:05.260 回答